<SEC-DOCUMENT>0000950170-24-087850.txt : 20240730
<SEC-HEADER>0000950170-24-087850.hdr.sgml : 20240730
<ACCEPTANCE-DATETIME>20240730160940
ACCESSION NUMBER:		0000950170-24-087850
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		83
CONFORMED PERIOD OF REPORT:	20240630
FILED AS OF DATE:		20240730
DATE AS OF CHANGE:		20240730

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			CECO ENVIRONMENTAL CORP
		CENTRAL INDEX KEY:			0000003197
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL & COMMERCIAL FANS & BLOWERS & AIR PURIFYING EQUIP [3564]
		ORGANIZATION NAME:           	06 Technology
		IRS NUMBER:				132566064
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-Q
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-07099
		FILM NUMBER:		241157443

	BUSINESS ADDRESS:	
		STREET 1:		14651 NORTH DALLAS PARKWAY
		STREET 2:		SUITE 500
		CITY:			DALLAS
		STATE:			TX
		ZIP:			75254
		BUSINESS PHONE:		(513) 458-2600

	MAIL ADDRESS:	
		STREET 1:		4625 RED BANK ROAD
		STREET 2:		SUITE 200
		CITY:			CINCINNATI
		STATE:			OH
		ZIP:			45227

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	API ENTERPRISES INC
		DATE OF NAME CHANGE:	19920703

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	ALARM PRODUCTS INTERNATIONAL INC
		DATE OF NAME CHANGE:	19851210
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>ceco-20240630.htm
<DESCRIPTION>10-Q
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!-- DFIN New ActiveDisclosure (SM) Inline XBRL Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2024-07-29T08:45:41.5254+00:00 -->
<!-- Copyright (c) 2024 Donnelly Financial Solutions, Inc. All Rights Reserved. -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" 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:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:nonNumeric="http://www.xbrl.org/dtr/type/non-numeric" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ecd="http://xbrl.sec.gov/ecd/2023" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:ceco="http://www.cecoenviro.com/20240630" xmlns:calc="https://xbrl.org/2023/calculation-1.1" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2023" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2022-02-16" xmlns:srt="http://fasb.org/srt/2023" xmlns:utr="http://www.xbrl.org/2009/utr">
 <head>
  <title>10-Q</title>
  <meta http-equiv="Content-Type" content="text/html"/>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="display:none;"><ix:header><ix:hidden><ix:nonNumeric id="F_670639e1-8893-43de-8241-a277c49e9ecf" name="dei:CurrentFiscalYearEndDate" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246">--12-31</ix:nonNumeric><ix:nonNumeric id="F_0a4f2847-5ef1-438c-8c98-23f8d0365ad6" name="dei:AmendmentFlag" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246">false</ix:nonNumeric><ix:nonNumeric id="F_698d59e6-1e4c-4bac-b023-a37d3e54546f" name="dei:DocumentFiscalPeriodFocus" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246">Q2</ix:nonNumeric><ix:nonNumeric id="F_e77e693f-32ac-4df6-9703-bcbbb194cfc2" name="dei:EntityCentralIndexKey" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246">0000003197</ix:nonNumeric><ix:nonFraction id="F_a8f3fb7d-309a-47bd-a3e1-a48e7dc59773" name="us-gaap:CommitmentsAndContingencies" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" unitRef="U_USD" xsi:nil="true"/><ix:nonFraction id="F_01acf33f-ecb6-4b4f-88e4-a07bc875ec36" name="us-gaap:CommitmentsAndContingencies" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" unitRef="U_USD" xsi:nil="true"/></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="ceco-20240630.xsd"/></ix:references><ix:resources><xbrli:context id="C_8117e764-0bc9-442b-8801-54318fd523c2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8152dc34-4c69-4866-ad0b-23f71ea741a3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_826735e3-d4df-4c93-b413-1f84f74a82a1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_86e5f137-171d-4e9e-8348-f8a74cde016d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_87c1a47a-5087-4a49-bfff-6c535924f465"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_87db28aa-f981-49b7-a48f-0347e97ecd19"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</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-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_88a27ed3-b991-49ee-a1c1-3c521b4793cd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_88bff4ba-8317-4837-938d-f9fc37b50aca"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8b3871f4-911f-4c70-a464-99f1e1215284"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:StandbyLettersOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_8bff0fcf-8302-4d60-af67-20a721fea746"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8c1e9305-5b24-4036-b6b5-fe398308abc9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-03-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_8d8d383b-3f59-464a-82cf-711cf15f8c2d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_8d9dd0fa-eeae-49e5-9562-18d1558786cb"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_90362dbf-1569-4da3-96cf-507dc082275b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9304e9b2-9d3f-4661-b790-466476e30580"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9467c45f-fc2f-4afe-868b-ad7b7b2ce2b0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9751a76b-96c9-440c-b366-05695a199a81"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_99396727-8ad2-491a-96cd-c52300727ec6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9a84b5b1-c68e-4e41-be48-283bf0ef0e87"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_9cc1a325-f1c5-4984-96e2-38072f792420"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9d6d5895-660d-4016-8c6f-e82667ea9131"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9ea56d88-7762-4e5d-a311-56d61c097dc7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9ee6fcc3-ffb2-4d85-9493-f70f41857445"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9f15121a-558b-4efd-9402-5a11935625fd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:GeneralRubberLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a018f1b2-658d-4c69-b7f7-dbf160e42516"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a0d70f96-cc7d-4573-a235-17a155aa32cf"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_a268f94b-df62-41e1-82fb-011408c77eb7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a29fb287-14dc-43e7-960f-3c344ea1a8dd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a4849349-5942-4bf8-99e7-2369f3306cf5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a494d4bc-4b96-4d25-ace1-837f7c055e28"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:EuroDenominatedBankGuaranteeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:NetherlandsFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a5d0dec5-c2b7-471c-8a22-95f23364f3a3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a688024d-ea2e-4297-b1ee-c2f0c7a49b50"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_a9781b31-2217-43c4-a4f9-d607443cce30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_aa55f74d-96c2-401e-82d8-106e147d0edb"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_abfbf8d7-c1a5-478e-a989-5c15e4b3a4ab"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_ad40e8cf-f2fd-488f-ad89-bf9bd65602d7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:TermDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b12d247c-0afd-4ab5-88b6-e0a38ee75cca"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_b3462824-949c-41a4-841e-4bb62a638246"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b45e663b-5908-4c71-8f23-b4f823f678b5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b4a042be-ed48-4247-a787-2fe0805c0213"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:TechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b786997d-9425-44b4-b5b5-81b33cb5743d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b93bb5d1-3363-47a1-b510-579f7a79a069"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_bafbfb8a-0c0c-4d5a-a954-15bda449f1b0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bb1d996e-63d5-4441-8a7d-44f320c7e49b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bc6723cb-1e5e-400d-a838-c78845df4645"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_bcadbc9e-14de-4605-8f58-6e9f45af0c4f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bf0643bb-0950-4448-a697-c5c01067fca8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bf1f7afe-ef76-4839-b481-e2da2412a988"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_bfa36cb0-caf8-4ef9-a454-7c3ba4fef4da"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_bfd1c8f4-4ec4-4cd3-9046-5b61623b7f3f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">ceco:FederalFundsRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c00125b7-d499-4c83-8986-6a7b2d7fb0ac"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</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="C_c1e40902-c5cd-4a79-97a8-8c2a20315c32"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c414f97d-9f9b-43c9-a9e9-bed9d1236d0c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_c42650fa-1a6c-4d61-b129-00391b2c2104"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:GeneralRubberLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c4880db7-af04-4cdb-b304-5ce220b387aa"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c6acfd3d-6aef-4cd7-85d9-236cd5a8ef9b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_c74d0fc9-94ee-4d75-b6d2-bff80b5c7d52"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><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-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c76cd8a7-ebe6-4893-adbd-6bc97354a70b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-07-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_c9b6c865-2af7-4b96-954f-843e672b4973"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-03-31</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ca1a86ec-f09e-4c1e-b971-9c627d11bb26"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_cd0842a7-b2f7-4e1d-980f-d73684a2e49f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_cd2d2d4c-054f-42c0-96a0-c9e2397c4302"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_cf575e81-89c7-41df-994e-ef0940b46d64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:CustomerListsAndTradeNameMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:Ds21CoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d0c769fa-b926-46db-acf8-57a0ecc28364"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_d0fae3b1-654e-4bfc-b02b-060a8b2a903c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</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-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d29c1624-8222-4062-9468-1ba65fcdfd94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d3f73ada-3db6-4e21-8188-fd15ee65304d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentRedemptionPeriodAxis">us-gaap:DebtInstrumentRedemptionPeriodThreeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d476354c-b060-4bb4-b416-b3a18342bdc4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d4b4634b-c3b6-4896-8387-339a90a48e65"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_d9b6b72a-350d-4fbe-ac0e-addf1b303b73"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_dabb3e39-4cf8-4cf3-9892-ef27de1f36e6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_db1a5d1e-9a28-486d-acf1-ef093b253c27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_dbb189c9-894e-4b47-afa3-89cb992725cf"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:Ds21CoLtdMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_dd6a1aef-4b8c-4998-8b9c-7c19aecf7d4c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_de8921fa-e123-403f-a89e-0f89fe00e956"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e0d374a7-ef0e-4c6b-ade8-621855261bfc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e0fc021a-2670-48f7-ae3d-aa548ef6c5be"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e1612251-f088-46b2-acb5-991ee0c4d66b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e1daf2f3-bc9c-41a8-b5d2-bff35648e89d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e3b2c967-afa0-4d33-9e76-b5e7187e533b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_e685381d-ceef-4dcf-a7ea-fb320641518e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_e98084c8-b39c-41f2-b9e6-98c78fd6227f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ed352a48-b629-4e4e-aefc-3e134a2ef268"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_efd85aef-608d-4037-831f-20a396347ca1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</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-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_efd90330-7aea-48a1-90ef-4f616e315186"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f0805f92-71a0-4619-afeb-b2020cfd641d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f10c1a04-d195-4d69-b158-bf0dfcb34eea"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f1d8c224-eeb9-4076-907e-840c7028a2ae"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentRedemptionPeriodAxis">us-gaap:DebtInstrumentRedemptionPeriodTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f2255341-43e2-4fe8-abbb-3d8614762ce2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:EuroDenominatedBankGuaranteeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:NetherlandsFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f83c2bac-f672-4efb-b825-bd21a4a20fb1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_fac8fa4d-a6d7-4a4c-9647-4b06d933ac64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_fbbc29e7-481e-4873-b4c6-62374fa0621e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-03-31</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_fcb369e4-0c48-476c-9cba-2ce136c26e27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">ceco:StateAndForeignAuthoritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_fcc152af-e5ca-45cd-b5d5-6d5289e49299"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_fdab6820-3f8f-48e9-a985-cb2338ff7e89"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ffdbfa94-6ea5-41d7-846c-6f63a4e98665"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_00cd23d2-d68f-4afc-8c8f-2c64af7a8739"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_00d0f9ca-31ff-446b-ab53-b010c28709ff"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</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-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_025cc205-8d40-4baf-944b-7d110f8d7a9c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_02e5d8b9-5f2b-4ee2-8c85-ef3433d6068b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_04e1df3f-6f01-4fd1-8499-60824c9e78f9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_075aff28-c277-466b-aa65-832c445c2571"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_076ee2fa-372f-4bff-95d2-a35a66b18613"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0a5b1628-ce6e-4701-82d3-2d742f925ace"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_0b9edac8-acc3-4238-814d-ca354a2ff827"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0b9f9325-4217-450d-9cac-d1594309dffe"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:StandbyLettersOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_0bf01a3b-ab3c-4030-9a92-b3468b93ed4e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0c5f4bc0-2224-4e45-bf01-f8c41f9559f3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-08-23</xbrli:startDate><xbrli:endDate>2023-08-23</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0c7d46de-789a-4433-8fe7-cb32db8159ca"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0c970210-db05-49b8-8ba3-cb7aa9c78a5f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0f9752f6-f439-49bd-8e82-a29a0fa2ef85"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_1050d7c0-8e0d-4f6d-aa00-1d66b7e53e4a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_11370468-b175-4073-8c99-42a16caa2ba9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:GeneralRubberLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_18cf0e95-6b2d-4751-a187-2d7efc7ed797"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_1a1e5efc-70ef-4256-b2a7-2de7d34fff85"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_20500dc9-bbe0-4a66-9012-b50ee4c1d26c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_20ad0766-ebe6-4ca3-a137-5724798774e5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_20af154e-2934-460e-b32a-3e33fd38f050"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_23439863-e7d0-4882-8948-606e7210181d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2451a01f-db86-4984-805d-aa5fa459e97f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_2589d1f0-4ead-437e-ae19-c64f5ab99b2a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-05-10</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_2706c733-d34b-4031-8842-25e6af288a6a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_289197ba-8252-4c38-b3fa-ea4502a004bc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_29308d50-6419-4d97-a577-ab1f6fccce01"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2a293b5a-4932-40dc-a332-dfc222e16e6b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2b122b27-701e-4e52-b9b5-83ead83e986e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2b349de6-f0d4-4ecc-a8d1-0ccf096c6c1a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-01-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_2bc42023-59af-4e84-857a-1aa2b7c1db33"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2c8a4156-257c-4771-99eb-aa35394e53e8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:ForeignCurrencyTranslationAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_2cef0ee5-7a56-4b23-9cdd-ea77dcbf5dae"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2d7e342a-22e9-4954-a136-8a3fa481fdd9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2db0f802-8f6d-4420-8da6-1484e57c4619"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2df8b23c-7594-48e2-872b-922e59cb77df"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_2edb3a2e-f9ec-4841-9ec6-21e75ef00b8c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentRedemptionPeriodAxis">us-gaap:DebtInstrumentRedemptionPeriodOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_30e73bb7-1ee9-4f4e-9bf1-ab554a2473da"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_30f7d23d-19da-4369-8fc4-1d3abf482698"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_312b96ea-ee3c-43b5-933a-d65043f455a4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_332373d6-9305-4dc3-b6d8-7c09bd6b203d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3373058d-aad6-4f03-8c90-2c4065c64dd5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_349b57fb-22fc-4ee6-be90-faafd6702fe2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:NoncatastrophicEventAxis">us-gaap:AsbestosIssueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_34ed007c-7495-435d-b7f2-fc8513a05fac"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_36a6fe56-8876-42bb-b152-b02a8bbe12b2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_36e74a25-4e6f-4a38-91c6-c90ceb48802e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3a0b3e75-3056-44a8-8753-0879f494583f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:GeneralRubberLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_3bd221d6-a123-44dd-acb2-9e1b69f0c61a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3d6177c4-3607-4592-87d2-65dc15e8c82d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3da024f4-e712-4f4d-8534-68f3deb4eeae"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_3e009773-c8ad-4721-9878-7588c65dab0c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4035f7da-d67e-4954-be7a-ebb558685f77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_41a854ea-1135-458f-87da-1f44f2144c51"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_42d2b36f-dc80-4a87-ab71-5a910665ed94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_431f62b4-8e96-4f2e-bb8b-938899c3d8c7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_43496f44-5f4e-4927-92e2-12adb3779d75"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_452b3b23-e015-4639-8e24-8004aa284162"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-08-23</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_45d06743-1d1c-4cf5-8ea9-acbfb7ee8b51"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_467bb776-a6b7-46e4-b2e6-701f8443e8a1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_47c9b570-d993-43d4-b232-5e23b60d591f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_47e61e04-853f-4bf4-8a81-336c8eae68b9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:NoncatastrophicEventAxis">us-gaap:AsbestosIssueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_489abd39-3499-4133-95b9-6d787ce5d31c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:StandbyLettersOfCreditMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_48e9a337-b814-47fb-aae0-b5faa898eb44"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-29</xbrli:startDate><xbrli:endDate>2024-07-29</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4903b239-8211-4916-a44e-128a6e7b7e35"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_492f1182-c2fb-4142-a569-68cb6768a4e5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_4ae7e10f-e6a0-4338-afa2-eb839c19e635"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4b4b1b7a-f250-4c11-96d6-cbd07f793bfe"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4db9219a-d453-46e6-88fb-2d3af9aa5d1a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_51832032-b6bb-40d0-8eb8-ee78b2df72e5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_51cfa482-c051-46b6-9734-7b94907f3dbb"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_52a7de7a-6f99-4e7a-8171-3348d1ebab1e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_52ba983d-3382-4f38-ae88-680f1dbd23ea"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5433d678-8101-4fb8-8a5c-02e55ea8ea0b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:MalvarEngineeringLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-10</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_55bf135b-9f96-4b77-9981-d927010c0d49"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:MalvarEngineeringLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-10</xbrli:startDate><xbrli:endDate>2023-01-10</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_55e1ae32-8285-46e6-b643-7e944a46252e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_589e9132-8dd4-4c77-be8b-d13a3828cf8f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:EuroDenominatedBankGuaranteeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_59fc15eb-e941-4554-83ca-b523abc2fd9b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5b5a004b-7578-415d-9824-2c1459fadf98"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5b7c892b-9787-4971-969c-53f51b5ba2b6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:EuroDenominatedBankGuaranteeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_5bc08da6-a665-4039-90b4-16e030a96f5b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5f2fd9f9-203e-405b-be71-f65a6734b28e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_629d617c-951a-49ee-86ee-d0d25b5ec4d8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:StandbyLettersOfCreditMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_63361188-0704-4e53-a4f8-ee4bc36d4c95"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_6493674e-373e-4ed5-a3d2-50234a50e8fd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_6605e0a9-8aca-4153-b976-41c11dd21de3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_67952f85-6a00-47cb-8268-1139b3f8fe75"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</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="C_6803e932-33b6-4356-8032-f6f6e04a2953"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_687e9c24-80ff-4b2c-bd54-7b7583b0e10c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6902be88-f2b7-4b77-a96d-089486a1a910"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_690c7f51-86b8-4bac-8087-2a49f4809817"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6a455b2c-8ed7-4695-86d0-e23d85800e42"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><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-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6c1b1dc3-e0b0-4139-9496-f0133f3508cd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_6d00beba-a242-44bc-956e-811c4160406d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:TechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_6f9a237d-a361-46b0-8346-bf1f6627c4b9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:MalvarEngineeringLimitedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_71573875-4b1c-4a6c-80f3-bb7e887c5bbc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_71fb9316-8c3d-423b-9ebb-a376ff80e2f2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7205a319-ed90-4a5b-845e-c56b957a9a39"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:ForeignCurrencyTranslationAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7436e234-3623-461d-b988-e60995d6a771"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_74a8fc1b-f6be-4fc4-a0b9-9d15cc2d0f6b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:TermDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_759bff4f-8d73-4edd-8334-8502baad65ed"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7923e4da-ce3a-46c9-be51-caf27afc8ef9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:MalvarEngineeringLimitedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7a1d8950-613b-4ba6-948e-7235f2ca2bf7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7a1e91ca-0af9-4201-a438-f7a7a000ccd7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7a64fcc3-da23-4ddd-a578-c91b7c0573b1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7af06f0a-64a7-4b61-9c12-491eb4dd6180"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7b0ccbd8-cde1-4fa0-92b8-fbefef7f7aea"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7e58e3b9-546f-4f3e-b0f6-c13ebf796a4d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7e7c49f2-927b-4b0a-8e2f-ab88b55fd2f5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7e9ff9e2-ee53-427d-add7-c58910902d9d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7f19d873-0ea9-4575-9270-315df0f6b819"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7f4dfa60-c725-43ba-8f56-61a75aa5d622"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="U_EUR"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit><xbrli:unit id="U_pure"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="U_shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="U_Case"><xbrli:measure>ceco:Case</xbrli:measure></xbrli:unit><xbrli:unit id="U_USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="U_UnitedStatesOfAmericaDollarsShare"><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><ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="FNT_560c2fe7-fed9-44d0-b8d0-bc291229dc8b" fromRefs="F_eea7a299-fd04-4634-b913-ff7e3c99ad2a F_b9e42d51-618f-4c90-af04-7ca329cb7e37 F_0dcfd763-2b6c-4c77-9593-b08dcb03388a F_fc374583-e93b-4abb-8327-56fdf907a643"/><ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="FNT_e8fef2e5-082a-4066-988d-b7a60c515ef6" fromRefs="F_08d5f4e7-da5d-46cf-b144-bf349eb2e1d7 F_1655f03a-c03f-4bff-88f3-60843529d22e"/></ix:resources></ix:header></div>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt double;text-align:left;"><span style="white-space:pre-wrap;font-size:1pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:15pt;font-family:Times New Roman;min-width:fit-content;">UNITED STATES</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:15pt;font-family:Times New Roman;min-width:fit-content;">SECURITIES AND EXCHANGE COMMISSION</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;min-width:fit-content;">Washington, D.C. 20549</span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:15pt;font-family:Times New Roman;min-width:fit-content;">FORM </span><span style="font-size:15pt;font-family:Times New Roman;"><ix:nonNumeric id="F_47192733-32ee-4b58-a945-0265b948c14d" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:DocumentType"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:15pt;font-family:Times New Roman;min-width:fit-content;">10-Q</span></ix:nonNumeric></span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:4pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(Mark one)</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:4.5%;"/>
    <td style="width:95.5%;"/>
   </tr>
   <tr style="height:12pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:12pt;"><ix:nonNumeric id="F_4d376b0b-23d9-4338-9bc0-9065cf594a51" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:DocumentQuarterlyReport" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">&#9746;</span></ix:nonNumeric></span></p></td>
    <td style="vertical-align:top;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Quarterly Report Pursuant to Section 13 or 15(d) of the Securities Exchange Act of 1934</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the quarterly period ended </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_8df00ae6-bdc9-447e-b20d-02941fbfcda4" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30,</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_8e9546f1-5ffb-4706-8aad-f249f2c9ab89" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:DocumentFiscalYearFocus"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2024</span></ix:nonNumeric></span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">or</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:4.5%;"/>
    <td style="width:95.5%;"/>
   </tr>
   <tr style="height:12pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:12pt;"><ix:nonNumeric id="F_00811f62-8870-4599-a638-3b52de64ec09" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
    <td style="vertical-align:top;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Transition Report Pursuant to Section 13 or 15(d) of the Securities Exchange Act of 1934</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the transition period from</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">                      </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">to</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">                     </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">    </span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Commission File No. </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_246054a5-3f12-4165-bad1-643dcee5c8f4" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityFileNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">0-07099</span></ix:nonNumeric></span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><img src="img58591874_0.jpg" alt="img58591874_0.jpg" style="width:83px;height:38px;"/>&#160;</p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:18pt;font-family:Times New Roman;"><ix:nonNumeric id="F_d7d9713e-4b4f-439b-8f2b-4ef8ac1b9f8f" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityRegistrantName"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:18pt;font-family:Times New Roman;min-width:fit-content;">CECO ENVIRONMENTAL CORP.</span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(Exact name of registrant as specified in its charter)</span></p>
  <p style="margin-left:40%;padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:40%;text-align:center;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:49%;"/>
    <td style="width:2%;"/>
    <td style="width:49%;"/>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_d11fb5af-8fbd-43ff-b841-bb2729406eb8" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Delaware</span></ix:nonNumeric></span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_bbfd2d5a-3677-4d81-b085-e9b98d0fe8de" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityTaxIdentificationNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">13-2566064</span></ix:nonNumeric></span></p></td>
   </tr>
   <tr style="height:8pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(State or other jurisdiction of</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Incorporation or organization)</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(IRS Employer</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Identification No.)</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:49%;"/>
    <td style="width:2%;"/>
    <td style="width:49%;"/>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_7e830075-b36f-4514-96d4-14b5542fbe97" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityAddressAddressLine1"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">14651 North Dallas Parkway</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_6bf9f3c4-221c-4075-b1e1-8ad4abae94a3" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityAddressAddressLine2"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Suite 500</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"> </span><span><ix:nonNumeric id="F_24109ade-e26e-428f-870e-c17de72dd66b" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityAddressCityOrTown"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Dallas</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">, </span><span><ix:nonNumeric id="F_ca8568bf-2785-4e6f-aa36-0081ef6e4633" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Texas</span></ix:nonNumeric></span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_fb3fc3b0-c8ac-4a47-8ddd-e2b137b1d163" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityAddressPostalZipCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">75254</span></ix:nonNumeric></span></p></td>
   </tr>
   <tr style="height:8pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(Address of principal executive offices)</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(Zip Code)</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Registrant&#8217;s telephone number, including area code: (</span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_bac7876d-cb81-4504-ba47-1058c3a383eb" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:CityAreaCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">214</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">) </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_4de02dbf-2b6e-41b8-a7c7-d47693648e9b" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:LocalPhoneNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">357-6181</span></ix:nonNumeric></span></p>
  <p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">Securities registered pursuant to Section 12(b) of the Act:</span></p>
  <table style="margin-left:6.833%;border-spacing:0;table-layout:fixed;width:89.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:35.52%;"/>
    <td style="width:28.04%;"/>
    <td style="width:36.44%;"/>
   </tr>
   <tr style="height:9pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="border-top:1pt solid;border-right:1pt solid;border-left:1pt solid;padding-left:0.075in;vertical-align:top;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Title of each class</span></p></td>
    <td style="border-top:1pt solid;border-right:1pt solid;padding-left:0.075in;vertical-align:top;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Trading Symbol</span></p></td>
    <td style="border-top:1pt solid;border-right:1pt solid;padding-left:0.075in;vertical-align:top;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Name of each exchange on which registered</span></p></td>
   </tr>
   <tr style="height:13.7pt;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="border-right:1pt solid;border-left:1pt solid;padding-left:0.075in;vertical-align:top;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_8303f60f-12d3-49aa-955d-5442688f77e3" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:Security12bTitle"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common Stock, par value $0.01 per share</span></ix:nonNumeric></span></p></td>
    <td style="border-right:1pt solid;padding-left:0.075in;vertical-align:top;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_d3ab1470-20fa-4fb0-bc00-d88b14ae193d" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:TradingSymbol"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">CECO</span></ix:nonNumeric></span></p></td>
    <td style="border-right:1pt solid;padding-left:0.075in;vertical-align:top;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_000f88c1-2cf7-4b13-8809-1c161a90d258" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">The NASDAQ Stock Market LLC</span></ix:nonNumeric></span></p></td>
   </tr>
  </table>
  <p style="text-indent:2.4%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">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.    </span><span style="font-size:9.5pt;font-family:Times New Roman;"><ix:nonNumeric id="F_795d9815-4e6f-447f-8c0d-526a103d675c" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityCurrentReportingStatus"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">Yes</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">  &#9746;    No  &#9744;</span></p>
  <p style="text-indent:2.4%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">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).    </span><span style="font-size:9.5pt;font-family:Times New Roman;"><ix:nonNumeric id="F_7e770f8b-5dc3-4c38-a0b5-91f803881d16" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityInteractiveDataCurrent"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">Yes</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">  &#9746;    No  &#9744;</span></p>
  <p style="text-indent:2.4%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:23%;"/>
    <td style="width:50%;"/>
    <td style="width:25%;"/>
    <td style="width:2%;"/>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="text-indent:12.95pt;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Large accelerated filer</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#9744;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9.5pt;"><ix:nonNumeric id="F_326b5e4c-b911-4464-8ac1-42343ddaa9af" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accelerated filer</span></ix:nonNumeric></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#9746;</span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:middle;"><p style="text-indent:12.95pt;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:middle;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="text-indent:12.95pt;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Non-accelerated filer</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#9744;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Smaller reporting company</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9.5pt;"><ix:nonNumeric id="F_e666ca7e-164d-446f-8295-00a04a003efe" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntitySmallBusiness" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="text-indent:12.95pt;font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Emerging growth company</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9.5pt;"><ix:nonNumeric id="F_10b34610-c49b-4363-a665-f135f6c9780d" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="text-indent:2.4%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">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;</span></p>
  <p style="text-indent:2.4%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="text-indent:2.4%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).   Yes  &#9744;    No  </span><span style="font-size:9.5pt;font-family:Times New Roman;"><ix:nonNumeric id="F_0d7f6525-0b21-4e43-80bf-5da315dbedb1" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="dei:EntityShellCompany" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">&#9746;</span></ix:nonNumeric></span></p>
  <p style="text-indent:2.4%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;">The number of shares outstanding of each of the issuer&#8217;s classes of common equity, as of the latest practical date: </span><span style="font-size:9.5pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0fe6e30c-f07b-4cec-85b3-dccceea69ba0" contextRef="C_c76cd8a7-ebe6-4893-adbd-6bc97354a70b" name="dei:EntityCommonStockSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,960,522</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9.5pt;font-family:Times New Roman;min-width:fit-content;"> shares of common stock, par value $0.01 per share, as of July 18, 2024.</span></p>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:2.25pt double;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;min-height:0.25in;justify-content:flex-end;"></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CECO ENVIRONMENTAL CORP. AND SUBSIDIARIES</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">QUARTERLY REPORT ON FORM 10-Q</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the quarter ended June 30, 2024</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Table of Contents</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:96.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:7.26%;"/>
    <td style="width:1.04%;"/>
    <td style="width:87.2%;"/>
    <td style="width:1.04%;"/>
    <td style="width:3.46%;"/>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Part I &#8211;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#part_i_financial_information"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Financial Information</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1_financial_statements"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 1. Financial Statements</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;text-indent:36.75pt;vertical-align:top;padding-right:0.01in;"><p style="margin-left:24.5pt;text-indent:-12.25pt;padding-left:12.25pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_balance_sheets"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Condensed Consolidated Balance Sheets as of June 30, 2024 and December 31, 2023</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;text-indent:36.75pt;vertical-align:top;padding-right:0.01in;"><p style="margin-left:24.5pt;text-indent:-12.25pt;padding-left:12.25pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_statements_operat"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Condensed Consolidated Statements of Income for the three and six months ended June 30, 2024 and 2023</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;text-indent:36.75pt;vertical-align:top;padding-right:0.01in;"><p style="margin-left:24.5pt;text-indent:-12.25pt;padding-left:12.25pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_statements_compre"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Condensed Consolidated Statements of Comprehensive Income for the three and six months ended June 30, 2024 and 2023</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span></p></td>
   </tr>
   <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;text-indent:36.75pt;vertical-align:top;padding-right:0.01in;"><p style="margin-left:24.5pt;text-indent:-12.25pt;padding-left:12.25pt;font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;text-indent:36.75pt;vertical-align:top;padding-right:0.01in;"><p style="margin-left:24.5pt;text-indent:-12.25pt;padding-left:12.25pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_statements_equity"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Condensed Consolidated Statements of Shareholders&#8217; Equity for the six months ended June 30, 2024 and 2023</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;text-indent:36.75pt;vertical-align:top;padding-right:0.01in;"><p style="margin-left:24.5pt;text-indent:-12.25pt;padding-left:12.25pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#condensed_consolidated_statements_cash_f"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Condensed Consolidated Statements of Cash Flows for the six months ended June 30, 2024 and 2023</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;text-indent:36.75pt;vertical-align:top;padding-right:0.01in;"><p style="margin-left:24.5pt;text-indent:-12.25pt;padding-left:12.25pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#notes_consolidated_financial_statements"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_2_managements_discussion_analysis_f"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 2. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">20</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_3_quantitative_qualitative_disclosu"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 3. Quantitative and Qualitative Disclosures about Market Risk</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">27</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_4_controls_procedures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 4. Controls and Procedures</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">28</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Part II &#8211;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#part_ii_or_information"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Other Information</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1_legal_proceedings"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 1. Legal Proceedings</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_1a_risk_factors"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 1A. Risk Factors</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_2_unregistered_sales_equity_securit"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 2. Unregistered Sales of Equity Securities and Use of Proceeds</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_3_defaults_upon_senior_securities"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 3. Defaults Upon Senior Securities</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_4_mine_safety_disclosures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 4. Mine Safety Disclosures</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_5_or_information"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 5. Other Information</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#item_6_exhibits"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Item 6. Exhibits</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">31</span></p></td>
   </tr>
   <tr style="height:6pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td colspan="3" style="padding-top:0.01in;vertical-align:top;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#signatures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Signatures</span></a></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0.01in;vertical-align:bottom;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">32</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.4in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">1</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> CECO ENVIRONMENTAL CORP. AND SUBSIDIARIES</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="part_i_financial_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">PART I &#8211; FINANC</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">IAL INFORMATION</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="item_1_financial_statements"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">ITEM 1.	FINANC</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">IAL STATEMENTS</span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_balance_sheets"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CONDENSED CONSOLIDA</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">TED BALANCE SHEETS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:64.473%;"/>
    <td style="width:1.42%;"/>
    <td style="width:1%;"/>
    <td style="width:14.343%;"/>
    <td style="width:1%;"/>
    <td style="width:1.42%;"/>
    <td style="width:1%;"/>
    <td style="width:14.343%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands, except per share data)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(unaudited)<br/>June 30, 2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">ASSETS</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cash and cash equivalents</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cb46eea7-bcaa-49cb-8429-d1590312f656" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,523</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fc49dc48-25e5-49b2-a4de-fcf7aae6da8a" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">54,779</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Restricted cash</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e5cf3550-6ac4-4d0f-a785-b2671c70e712" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:RestrictedCashCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">391</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f48a2ab4-7a4e-4216-bb96-066667715a92" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:RestrictedCashCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">669</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable, net allowances of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_17798182-a914-4319-af8c-9a727236f024" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,582</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;and $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_04b227bf-b8f5-40b0-baeb-f9bb86818b68" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,460</ix:nonFraction></span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_02345cd7-46e5-43cc-8826-1d22743757eb" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,974</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_737f72a1-5c42-49c8-8d7f-e791e66d929d" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">112,733</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Costs and estimated earnings in excess of billings on uncompleted contracts</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1e6ccf7f-6d13-4c23-9a70-e7ba61c11b6c" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:ContractWithCustomerAssetNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">55,378</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3e1a2553-58c0-495b-a77b-2eded0e9c753" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:ContractWithCustomerAssetNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">66,574</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Inventories, net</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9f2419a9-4faa-4d88-861e-33fb01ac97a9" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,475</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bea88c85-40ad-4aeb-9b94-1f6dea4a9d87" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,089</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid expenses and other current assets</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_619b4b52-d020-49bb-9155-97bfb687e1df" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,414</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_70675812-e16f-4f80-ba08-eb3d06bd8f71" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,769</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid income taxes</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d91bd286-8225-4dbb-98cc-badf73d474f5" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:PrepaidTaxes" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,215</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7d2e801f-1d22-45ba-af71-fc0734d5d9a1" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:PrepaidTaxes" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">824</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total current assets</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_23685158-3341-4f71-bbc7-b2171b81ac7c" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">281,370</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c0fb3aee-a500-4156-a0fd-b8b72c5cbe7d" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">281,437</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property, plant and equipment, net</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2f2e3271-48eb-47f4-9139-f1f367cb0081" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:PropertyPlantAndEquipmentNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30,290</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_40aeb7cb-3ac1-4c61-8086-c8ddd7858370" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:PropertyPlantAndEquipmentNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26,237</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Right-of-use assets from operating leases</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_94149914-4b46-4728-ad07-25781bd2109f" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,137</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b87283f8-19e4-45b4-948d-fa10594ac2a4" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,256</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0599b459-506c-47d3-986e-6ce4a505f27d" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,144</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f049f931-0d0c-4fab-8fc3-0db1b2c11a37" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,326</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets &#8211; finite life, net</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_deddfeab-6683-4c49-b821-ed1f81b17435" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">46,086</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_07516010-9369-4e49-a94d-4f7bca0d37a0" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">50,461</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets &#8211; indefinite life</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b8f2f11e-f470-4e8d-84ee-e7212ec7dd6a" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,522</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e311822a-e6cf-41d5-98cb-2773693f9c7f" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,570</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred income taxes</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6726dc9c-1a4b-4afc-ac0a-6e573ad368ee" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:DeferredIncomeTaxAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">263</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ca06b762-bf26-420a-bd8d-e4928d9d79cd" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:DeferredIncomeTaxAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">304</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred charges and other assets</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8d0b921b-5a7d-42c6-a4ab-dceb1fa9b2d8" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:DeferredCostsAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,321</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0a51d511-090f-4ec4-b3db-f50d5b0b1938" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:DeferredCostsAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,700</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_91a97b08-3908-46aa-9f82-d4f9a64af0aa" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">598,133</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9cea06ed-d910-4c33-81a9-3b19c8eb7109" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">600,291</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of debt</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f0669ff1-6f97-4d40-9c72-b27b3444babe" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,580</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_60b54ee5-0344-4d1f-b74b-1fabdfb57cea" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:LongTermDebtCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,488</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts payable</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2f4d5bf5-f44a-47f4-b967-57828f202b2a" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AccountsPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">90,944</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1f14635a-e4f7-43f2-83a5-641eeb75ab6c" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AccountsPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">87,691</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dde7bd81-731f-444c-a795-8a5bcd1e3ff3" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">44,736</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9b96ad09-a95a-4be9-89d9-6cf7d468f90f" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">44,301</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Billings in excess of costs and estimated earnings on uncompleted contracts</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_18d85b9d-9906-4327-a4c4-77a530091372" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">59,851</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d28dcba1-1aab-49a5-854f-a2264bada8df" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">56,899</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Notes payable</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3164f65b-d25e-4a32-a3bd-58bc1c8d2e74" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="ceco:NotesPayableCurrent1" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0a2a3cf7-9dea-4f93-9f2b-3efa48cd1e86" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="ceco:NotesPayableCurrent1" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,500</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Income taxes payable</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d7270789-8b6d-48a3-9c50-30190f15287a" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AccruedIncomeTaxesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,212</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1d73d802-42b4-4540-86ac-774f6576a572" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AccruedIncomeTaxesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,227</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total current liabilities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2d88c8dc-f4e8-401d-a5d5-dc3d7f79a5c7" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">207,323</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d001a64d-b83a-488a-8587-e4dcaa22d666" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:LiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">203,106</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other liabilities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_585296e3-e582-4e13-826d-430215b31246" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:OtherLiabilitiesNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,196</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4441ce0a-d734-4fc0-8d54-7dc2c06b737e" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:OtherLiabilitiesNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,644</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Debt, less current portion</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1b5f7a3f-023b-4996-8b59-3a0e4cb6481b" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">120,246</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_03ce7704-561a-4bc6-9006-03772b2b3c5d" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:LongTermDebtNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,795</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred income tax liability, net</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2b7ea303-5041-4c0d-a658-89c017e12a01" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,949</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_adb57f8d-bf1f-4109-b405-97bfccf83446" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,838</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease liabilities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_74856f49-9bb2-4d2c-b9bb-afcf6f39a35d" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,607</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ae601f0d-13ec-476f-bd2c-4ad816a533a0" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,417</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total liabilities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6a610277-20d1-438d-94d9-c54fac0fd96e" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:Liabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">358,321</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b1eb151f-8598-4bcf-9066-98a6949d3edc" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:Liabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">362,800</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_a8f3fb7d-309a-47bd-a3e1-a48e7dc59773;"><span style="-sec-ix-hidden:F_01acf33f-ecb6-4b4f-88e4-a07bc875ec36;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Commitments and contingencies (See Note 14)</span></span></span></span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shareholders&#8217; equity:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Preferred stock, $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f487013e-6266-486f-8c3e-4d8826a3ba52" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:PreferredStockParOrStatedValuePerShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2"><ix:nonFraction id="F_c8df845d-6293-4f96-818e-aae0dd560c1e" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:PreferredStockParOrStatedValuePerShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2">.01</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;par value; </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_588e6cb2-935c-44eb-998c-d8c483997779" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:PreferredStockSharesAuthorized" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_f940f9ce-e1dc-4995-8c7a-e1dd54ccbe3c" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:PreferredStockSharesAuthorized" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">10,000</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;shares authorized, </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_210fe817-b008-476c-9369-25280d082d03" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:PreferredStockSharesIssued" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_26155e10-5f63-4ef6-a88b-1ea508de9a3e" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:PreferredStockSharesIssued" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen">none</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;issued</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_63c5681b-7dea-409e-96d3-128facee381b" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:PreferredStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c7e7abbe-37e3-4264-a716-04797b538674" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:PreferredStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;Common stock, $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b32581f0-d3fd-4d3f-8285-82651dd6ca00" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:CommonStockParOrStatedValuePerShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2"><ix:nonFraction id="F_efa248b2-bdec-415e-ba49-2336061c459d" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:CommonStockParOrStatedValuePerShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2">.01</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;par value; </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_18da8c75-adfa-4a74-91ac-c90e97ec6f37" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:CommonStockSharesAuthorized" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_81c17c71-6e3d-42a9-a413-88ae240eb32c" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:CommonStockSharesAuthorized" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">100,000,000</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;shares authorized, </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_04ec20f1-2533-45c1-96ac-d808a1e1a8d7" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:CommonStockSharesIssued" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_3a2fb824-1f2e-4d80-98e8-a485cae65c8b" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:CommonStockSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,923,701</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;and<br/></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f37c54e3-c65a-49a3-91a5-72548f89bf20" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:CommonStockSharesIssued" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_8b5655e0-4956-4073-9220-d1b0d8ed46fb" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:CommonStockSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,835,293</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;shares issued and outstanding at June 30, 2024 and December 31, 2023, respectively</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6d46c476-4b9c-4f10-aab7-386175ce8db5" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:CommonStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">349</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a8957c7c-d526-48c7-8a60-c2e32fda88b6" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:CommonStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">348</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Capital in excess of par value</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b9bbdc3f-4a8b-4f40-887b-72bbefd6f869" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AdditionalPaidInCapitalCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">251,560</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ace613b5-23b3-43f5-b5f3-36c6b44235e6" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AdditionalPaidInCapitalCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">254,956</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_03b55e02-5c0f-46ee-8701-0edef027cde4" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:RetainedEarningsAccumulatedDeficit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">394</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_22a179a9-a014-407e-9eef-3ef6476a5eca" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:RetainedEarningsAccumulatedDeficit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">6,387</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated other comprehensive loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_295ccc80-ff73-437d-8d19-851e2713bd59" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">16,476</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_26ef0e94-4ea7-4d95-928c-16d71db31f00" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">16,274</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total CECO shareholders' equity</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7e119288-dd86-4903-bb5c-9f6e2f8b6639" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">235,039</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2c9dff43-c152-4cc5-9fe3-553999e7a596" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">232,643</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Noncontrolling interest</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ed2b2ebc-c455-4d43-bdfa-49574f98f094" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:MinorityInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,773</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dc3226ec-8bb3-481a-b999-5c8eda2bf16b" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:MinorityInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,848</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total shareholders' equity</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bc52eac3-7799-464d-b8bf-33474d7f3b3f" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">239,812</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8718fa83-c44d-4ee8-90da-d1a8fec24f4b" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">237,491</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:30pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:30pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total liabilities and shareholders' equity</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e688b1f8-0c1f-4a0f-bd28-61d974e92862" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LiabilitiesAndStockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">598,133</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_589f2f7d-461d-4c44-b7a1-ddad46668852" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:LiabilitiesAndStockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">600,291</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The notes to the condensed consolidated financial statements are an integral part of the above statements.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_operat"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CONDENSED CONSOLI</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">DATED STATEMENTS OF INCOME</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(unaudited)</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:47.941%;"/>
    <td style="width:1.1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.916%;"/>
    <td style="width:1%;"/>
    <td style="width:1.1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.916%;"/>
    <td style="width:1%;"/>
    <td style="width:1.1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.916%;"/>
    <td style="width:1%;"/>
    <td style="width:1.1%;"/>
    <td style="width:1%;"/>
    <td style="width:9.916%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands, except per share data)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net sales</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_79d93cbc-fe78-41cf-b503-5b78eeaa4f6c" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">137,522</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d4fcf6b2-6ecd-428d-9d99-740410b7542d" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">129,181</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_88a2d893-ef4d-4a43-8cc2-71d2e5c96c23" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">263,854</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_96930a76-7d28-4a70-bd8f-ce23ed7ceecb" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">241,744</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of sales</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d1720e14-cc5f-4ed2-9666-06fff7ba9ba0" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">88,475</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_45c648a9-8b1c-4258-b725-c25e51a9fdc1" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">89,364</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d1db1f33-9c16-407c-9369-c6ea39d2d609" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">169,675</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_135556e6-bb77-4a3e-a80d-fd902674dfcd" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">167,034</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Gross profit</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0534e7a7-d71e-400f-b05a-ac788b9ab9a4" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">49,047</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0fb57d27-5aa8-4be7-8391-68538eb5e941" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">39,817</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6aa50ff2-5a95-458b-be71-5f2348762e13" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">94,179</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b5b94905-dd73-4684-aff3-d88e782ff94f" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">74,710</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and administrative expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9ccf20ef-e38c-45d7-bf60-01f336c000be" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:SellingGeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,465</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_eaa5c865-451c-47bc-b949-d869ebe993b4" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:SellingGeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">28,451</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7580c1ef-f8aa-465d-9324-c94ddc870bce" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:SellingGeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">71,372</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f7955282-2f04-4e35-8ede-2de7aef0de06" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:SellingGeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">55,644</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization and earnout expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_da925aaa-51bc-44a0-ae8d-7a7599c10311" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="ceco:AmortizationAndEarnoutExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,210</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_57d7022a-1631-4cfe-bcfe-b0d622f47ca7" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="ceco:AmortizationAndEarnoutExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,273</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_50375ef5-36d8-4bc5-af39-bae1b6c1d364" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:AmortizationAndEarnoutExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,419</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a4bf9c23-7a6a-4c8e-b81e-9d71debe0ab2" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:AmortizationAndEarnoutExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,020</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisition and integration expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ddb6d285-b47e-49e8-af9d-d57116a0c66d" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:BusinessCombinationIntegrationRelatedCosts" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">476</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c1f55884-c164-4007-a588-4dd17c413276" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:BusinessCombinationIntegrationRelatedCosts" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">332</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f7a6e6f0-28e6-41ac-b939-4f98224df9f4" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:BusinessCombinationIntegrationRelatedCosts" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">666</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_04ddda85-c07d-4d00-ad5e-5a2ee8bb56db" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:BusinessCombinationIntegrationRelatedCosts" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">824</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Executive transition expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_87ab962a-7a70-4bd0-adfe-6daff2624c11" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="ceco:ExecutiveTransitionExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_256b804f-cd3d-4bb8-ac35-9f90903cc4e0" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="ceco:ExecutiveTransitionExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">158</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e4255593-5acc-4ed2-bf4e-45f0fe4d016b" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:ExecutiveTransitionExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3ac75fe8-b9de-49ad-a38b-a51a5bbf8fe0" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:ExecutiveTransitionExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">158</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Restructuring expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cc858246-80fb-4b72-bcca-2753e4899d9a" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:RestructuringCharges" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">414</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c1109bb3-9e02-47ca-99cc-44d05563a519" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:RestructuringCharges" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b2d8161e-6329-40c2-9d0a-b771ae93cc04" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:RestructuringCharges" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">554</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_27bd3587-54e1-45c3-88ed-9860d4424113" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:RestructuringCharges" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Asbestos litigation expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ae336be7-ee15-4c9a-9d06-d98653fcd5e1" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="ceco:AsbestosLitigationExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">225</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f07593f6-6f79-4e6e-8489-f965ad5e6f33" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="ceco:AsbestosLitigationExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1ba2d2c1-6179-43ad-8063-a51fad5fc14e" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:AsbestosLitigationExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">225</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_12b24bc4-3097-43b4-bf2c-31da12bab009" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:AsbestosLitigationExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Income from operations</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_38ad9a1a-cd16-4b27-bb03-d231f81c854b" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,257</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1991335f-0d05-493a-81d8-9a4ea1e1b320" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,603</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0b8613ae-926c-4d8b-ac9e-4c321449fcf1" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,943</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cf8efcb5-8657-4a82-b92b-d0cfb26bdb8e" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,064</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other (expense) income, net</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a89912a9-7faa-48b0-8a33-b0c8daca5422" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:OtherNonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">679</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_203d709f-f683-4380-8e27-ef35bf3bd381" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:OtherNonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">121</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fd49cb59-4ad5-4f67-b0c0-2204be4e6be2" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:OtherNonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,192</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4b7b43d4-9838-4b05-afb7-0189ebf9fcaf" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:OtherNonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">453</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Interest expense</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_93de46f2-4eb1-44a7-9732-8c79f03c837d" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:InterestExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,254</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3740ce29-ec77-46c1-907a-ef3bd964c1bf" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:InterestExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,750</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_43a1e995-b973-425f-a46f-eb2f684c4375" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:InterestExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,667</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a48d0f0f-c661-4e32-bc9c-09d13e79fe35" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:InterestExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,158</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Income before income taxes</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_84cf13ca-63a3-4405-b4e1-32f6154b42bc" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,324</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_082478a4-e049-4248-9a19-fd8175bcf450" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,974</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_131b7469-bff9-4181-9862-b8586afe2521" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,084</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a298541f-7391-4d79-9c8d-627876f8fe8c" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,453</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Income tax expense</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7f86a1b9-8e70-4320-96ef-1a1d4fb1d576" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">394</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_efcbe9cb-be50-40b1-993c-f1f45c197fc0" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">984</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_105254b3-57cd-42a1-9e74-910b6a265955" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,062</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ab5069fe-86c7-4a46-a6df-eac47c9c90cd" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">993</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_61d95540-78ff-487a-91e2-e8819557fab0" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,930</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_38a52a70-d596-43c7-871d-09bdd1e7f31e" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,990</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4b5da88f-1151-4d99-b939-446c29f75d94" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,022</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4d930c32-80a5-413b-9706-a0c206df1fd1" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,460</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Noncontrolling interest</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5a9e4f16-917c-4e5a-ae05-2cd55bc6c76f" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:NetIncomeLossAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">445</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a11074a4-1c82-426a-8db0-b94300ec4110" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:NetIncomeLossAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">266</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_839327d7-d5fa-47c7-b8b1-cbe4798b5299" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:NetIncomeLossAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,029</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1756852c-3f5a-4215-a724-eb8d57d3e21a" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:NetIncomeLossAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">759</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income attributable to CECO Environmental Corp.</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_004487fe-e301-4411-9626-4903c7b37ddc" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,485</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9cf7bcee-08c1-4b0b-9030-593a737cdb2b" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,724</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1c21224e-db95-4ca5-aa50-f627ab6c1789" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,993</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1eb24a7d-5f1c-4142-9bc6-c1901b624c0a" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,701</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Earnings per share:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_42297140-83ad-4010-bd6a-8ef74bcf802c" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.13</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b3ebe1d2-fcb5-42c3-aeb7-e1a6d600b389" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.11</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5d3b192b-3028-4839-a1d7-406d7121652a" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.17</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_93981d59-2087-4814-8449-5c4d0dcca177" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:EarningsPerShareBasic" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.17</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_51624512-b6d7-47ca-8ed7-bf593ca98d91" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.12</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8ea19ac2-55c2-4e73-a9aa-e53f076394e9" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.11</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4a770e91-2113-462f-823c-22f05237be23" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.17</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2533d8ee-dad9-4e0e-9084-d841d187032c" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:EarningsPerShareDiluted" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.16</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Weighted average number of common shares outstanding:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_20454f29-cb93-4cd7-9f48-6d8e48f2e8ba" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,918,412</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_27cbfa3f-738f-4af2-8168-3b13b588c489" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,619,216</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9e24bbb7-a127-4782-b289-dd296417289a" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,881,625</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_88d60a79-3653-4cb2-a8f3-21565de80cf4" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,531,050</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_76400ca1-88e7-4179-8ed9-9611e3b14209" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">36,302,664</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_aac8cb11-1125-46a0-97d1-80d635c29439" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">35,143,782</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c3f2cb9b-8b1c-4812-a7df-9fe21f8c870d" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">36,239,331</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f1d39e88-5db1-4b56-a1a5-9df5643b4e05" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">35,171,727</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The notes to the condensed consolidated financial statements are an integral part of the above statements.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_compre"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CONDENSED CONSOLIDATED STATEMENT</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">S OF COMPREHENSIVE INCOME</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(unaudited)</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:46.911%;"/>
    <td style="width:1%;"/>
    <td style="width:10.418000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:10.418000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:10.418000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:10.418000000000001%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e84b7107-8c4e-43fc-b398-99709b25d9f6" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,930</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d188395c-2fcb-4259-bf77-feae1eec7c89" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,990</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2cf09554-a9c6-42f7-a057-d5e5a1fdbb08" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,022</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2cfd79ad-1697-46ca-ab6c-10167db16766" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,460</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other comprehensive income, net of tax:</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency translation (loss) gain</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_542e1080-0184-4fc4-9d2e-b38435603055" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">856</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0c0114eb-a192-478e-a8ec-6dc3ad90c1cf" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">139</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_56383d3a-81d8-4fec-b287-7beb6689406d" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">202</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c10b2f05-7267-4825-97c9-418657b4906d" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">905</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Comprehensive income</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b047e4ca-f4f9-463d-aac7-06ce5e53c091" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,074</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0daa62ea-c043-446d-b979-16633c3c69c1" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,129</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_59517248-18d4-44a1-8770-dd0432c2aa66" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,820</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3737c870-29c6-4e1b-afdb-2b0cb50681e3" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,365</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The notes to the condensed consolidated financial statements are an integral part of the above statements.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_equity"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CONDENSED CONSOLIDATED STAT</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">EMENTS OF SHAREHOLDERS&#8217; EQUITY</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(unaudited)</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:27.04%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:6.84%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:6.44%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:7.1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:7.1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:10.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:7.1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:7.3%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Common Stock</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Capital in<br/>excess of</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accumulated</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accumulated <br/>Other<br/>Comprehensive</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Non-controlling</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total <br/>Shareholders'</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Shares</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Amount</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">par value</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Loss</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Loss</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">interest</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Equity</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance December 31, 2023</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_23997145-db03-4090-8899-1f7ad37aab24" contextRef="C_f83c2bac-f672-4efb-b825-bd21a4a20fb1" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,835</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_16f2f2f4-dc0f-4cd3-bbbb-e4d1f5decf01" contextRef="C_f83c2bac-f672-4efb-b825-bd21a4a20fb1" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">348</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bb2d9c10-402a-4b23-be89-9d25dd9754a6" contextRef="C_02e5d8b9-5f2b-4ee2-8c85-ef3433d6068b" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">254,956</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_55e0c7bd-e5df-4fd1-8fe7-19a7c84b6faa" contextRef="C_e685381d-ceef-4dcf-a7ea-fb320641518e" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">6,387</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3aea2e64-ec60-4465-bb01-9a8016268f51" contextRef="C_d0c769fa-b926-46db-acf8-57a0ecc28364" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">16,274</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d44062c1-0ace-43f1-bf65-ff816bace79a" contextRef="C_7e9ff9e2-ee53-427d-add7-c58910902d9d" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,848</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_da90725c-50b3-4dfb-9323-512a3028226f" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">237,491</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income for the three months ended March 31, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6563b9cb-87d8-4522-a347-f0fb16e651da" contextRef="C_71573875-4b1c-4a6c-80f3-bb7e887c5bbc" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,508</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b102da74-3d50-414f-81ac-6bfa37487b61" contextRef="C_67952f85-6a00-47cb-8268-1139b3f8fe75" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">585</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_849c0d69-0993-4048-9324-cdb38631e9e4" contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,093</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Exercise of stock options</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b4dfcafc-b1be-4233-af0b-96e11a3dec0a" contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">10</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ab5e997e-f344-4bf1-8556-1eef3b43b1b8" contextRef="C_492f1182-c2fb-4142-a569-68cb6768a4e5" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">113</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_271e451a-9fcd-4104-bec5-dfbe75d7b702" contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">113</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Restricted stock units issued</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_52f8baa1-e8c4-4cd6-bbe8-3cf4ff8f1ec3" contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2" name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">195</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e2991d9c-43dd-4877-a5b5-d3405d0a6ac3" contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_47b58f32-a1aa-4824-ba5d-946f8d3414e9" contextRef="C_492f1182-c2fb-4142-a569-68cb6768a4e5" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,204</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3e2a8028-e771-4eaf-affc-64955360bbad" contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,202</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Share based compensation earned</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_333831e8-3aa4-4102-8a77-f3d123a349ef" contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_51f4dd73-2252-48df-91b2-f8a4e3320795" contextRef="C_492f1182-c2fb-4142-a569-68cb6768a4e5" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,808</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_51978fbe-242e-44fe-bf48-0d78c65d465f" contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,808</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock repurchase and retirement</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_372d12f7-1718-4b01-a160-843e717bcf14" contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="0" sign="-" format="ixt:num-dot-decimal">144</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_aed06ce8-9160-4d4b-957b-65c893dba40a" contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e7edd675-c423-4919-878f-48d861cd3aba" contextRef="C_492f1182-c2fb-4142-a569-68cb6768a4e5" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,000</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a709b9dc-1fc5-440b-b8dd-8a0239feee96" contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,001</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Translation gain</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4308a5bc-54e8-4ffa-b69b-9f6aca216092" contextRef="C_bc6723cb-1e5e-400d-a838-c78845df4645" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">654</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dc195b17-9b7c-4936-8e6b-4074089a82b2" contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">654</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Noncontrolling interest distributions</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5c417564-768f-42b7-8c10-8d9b98c55913" contextRef="C_67952f85-6a00-47cb-8268-1139b3f8fe75" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">804</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_019aa02b-0eba-43e5-af9f-80e4d323bce6" contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">804</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance March 31, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f56f28d7-de25-44d1-a3b0-11379c08f648" contextRef="C_9a84b5b1-c68e-4e41-be48-283bf0ef0e87" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,908</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_47b68046-67f3-40c1-a494-af4ef175b295" contextRef="C_9a84b5b1-c68e-4e41-be48-283bf0ef0e87" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">349</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bcbf08e5-d58c-46b0-ba16-3c920e853bcc" contextRef="C_fcc152af-e5ca-45cd-b5d5-6d5289e49299" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">251,673</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_955f5ae5-2efe-4c76-abed-7b950e80d1a8" contextRef="C_d4b4634b-c3b6-4896-8387-339a90a48e65" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,879</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_96a7b35b-4c0b-4b5c-bf44-7e9aafcf8d45" contextRef="C_ca1a86ec-f09e-4c1e-b971-9c627d11bb26" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">15,620</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_59cf46a2-7d1f-458d-8172-0c63b0c35967" contextRef="C_3e009773-c8ad-4721-9878-7588c65dab0c" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,629</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_59110cf9-5219-47b1-92c3-3695facee2b2" contextRef="C_7b0ccbd8-cde1-4fa0-92b8-fbefef7f7aea" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">236,152</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income for the three months ended June 30, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_99593fbe-3403-4659-ad97-62c0a548b5e3" contextRef="C_687e9c24-80ff-4b2c-bd54-7b7583b0e10c" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,485</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2d5294ef-bcf3-4e18-a487-fc1220e5d08a" contextRef="C_fdab6820-3f8f-48e9-a985-cb2338ff7e89" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">445</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_07462974-6d34-4689-a785-f0fc295268f5" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,930</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Exercise of stock options</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_57f5b0fc-d31c-49a4-83a6-7386848bb88c" contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">10</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2714b059-279b-4eb2-be3e-caf305ba9ceb" contextRef="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">161</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8da93b2d-fc00-4d95-a603-3cdc1939b57c" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">161</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Restricted stock units issued</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6035eec8-3f65-4fa5-82ff-a9f836568ea6" contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4" name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">92</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cef4c80a-6c43-4621-ae1d-2ffa6e021ded" contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_84458733-5a32-4909-8b9c-0a1e62c9121c" contextRef="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">466</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c2f2e02d-dc88-4836-8a1b-3ac62e7ac54b" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">465</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Share based compensation earned</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d3c34fb8-ca29-4017-8d81-b52e1fa0b552" contextRef="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,191</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b500ae42-9530-4093-a5c3-ad1c20e4789d" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,191</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock repurchase and retirement</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9391e651-31ae-4d06-90d1-d4521164e5ea" contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="0" sign="-" format="ixt:num-dot-decimal">86</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4ebb4be2-faf5-47fc-81e8-a36911514232" contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0089439a-3e97-465c-94d9-017fe89b6ca3" contextRef="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,999</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cc3c8b4b-f1ce-4ad9-b66c-c119ac14db87" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,000</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Translation loss</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6bfd7cf2-f2d2-4088-a691-df3a6a12113f" contextRef="C_e98084c8-b39c-41f2-b9e6-98c78fd6227f" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">856</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_788a5366-10c7-4f13-9c06-940bbde327a7" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">856</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Noncontrolling interest distributions</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_41d09f24-0fc9-4b91-891c-1268c354387f" contextRef="C_fdab6820-3f8f-48e9-a985-cb2338ff7e89" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">301</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b3928249-eecb-40b2-a7c2-1fbdbae89147" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">301</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance June 30, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_44824851-69be-4598-bdbd-34d078366f23" contextRef="C_8152dc34-4c69-4866-ad0b-23f71ea741a3" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,924</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6a4daf45-08cd-4a06-a487-a8489ed941ae" contextRef="C_8152dc34-4c69-4866-ad0b-23f71ea741a3" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">349</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dd95a905-f1b6-44ed-9ff9-aa9d0d66d750" contextRef="C_2df8b23c-7594-48e2-872b-922e59cb77df" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">251,560</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5d5eb5ca-64d7-4e02-a6e2-c162d12a485b" contextRef="C_7a1e91ca-0af9-4201-a438-f7a7a000ccd7" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">394</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_782451e8-c17d-4ea5-8830-177337c7c4e5" contextRef="C_a688024d-ea2e-4297-b1ee-c2f0c7a49b50" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">16,476</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_021d7b10-5c6b-4513-be2a-04cbf4f07c68" contextRef="C_99396727-8ad2-491a-96cd-c52300727ec6" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,773</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c3fbb37e-f776-4b07-a729-1a1138be0dc9" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">239,812</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:27.04%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:6.84%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:6.44%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:7.1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:7.1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:10.08%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:7.1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:7.3%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Common Stock</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Capital in<br/>excess of</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accumulated</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accumulated <br/>Other<br/>Comprehensive</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Non-controlling</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total <br/>Shareholders'</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Shares</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Amount</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">par value</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Loss</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Loss</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">interest</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;min-width:fit-content;">Equity</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance December 31, 2022</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_20662fde-b1e2-45a4-b679-28b531781aba" contextRef="C_4db9219a-d453-46e6-88fb-2d3af9aa5d1a" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,382</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9a258389-6caf-45a5-b560-6636f421fe5a" contextRef="C_4db9219a-d453-46e6-88fb-2d3af9aa5d1a" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">344</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_491cceed-2c5e-47e6-914c-c3b66d76d004" contextRef="C_abfbf8d7-c1a5-478e-a989-5c15e4b3a4ab" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">250,174</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ea62edf4-b9ea-460a-afbc-4a956c6f9e5a" contextRef="C_86e5f137-171d-4e9e-8348-f8a74cde016d" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">19,298</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_40a2b2c1-e752-401c-a9ae-c51be971847e" contextRef="C_b12d247c-0afd-4ab5-88b6-e0a38ee75cca" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">17,996</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_619256e1-5b22-473b-9155-3bb2ef428582" contextRef="C_bf1f7afe-ef76-4839-b481-e2da2412a988" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,924</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f2e1fa67-02f4-4dda-9989-9807811a7efb" contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">218,148</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income for the three months ended March 31, 2023</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_37d75163-23b1-413f-a547-ea3991a05572" contextRef="C_6c1b1dc3-e0b0-4139-9496-f0133f3508cd" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,978</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c2cea9f4-02ce-495f-b3af-7bd9afeb66a0" contextRef="C_c00125b7-d499-4c83-8986-6a7b2d7fb0ac" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">491</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_74aabcfd-028a-455b-83d3-974d0ff76118" contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,469</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Exercise of stock options</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b1749300-1d46-40a9-948a-51d6ae93f0b4" contextRef="C_025cc205-8d40-4baf-944b-7d110f8d7a9c" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">52</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_331b43cc-a6e0-4f2a-bd91-867fccba56cd" contextRef="C_025cc205-8d40-4baf-944b-7d110f8d7a9c" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_556ce4d8-39d2-4a0d-b4a5-a38f4286f5d9" contextRef="C_63361188-0704-4e53-a4f8-ee4bc36d4c95" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">611</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6b8631f4-d658-43cf-91af-b06a70f77507" contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">612</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Restricted stock units issued</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5c222bd8-1083-4867-9314-ab6a3e379279" contextRef="C_025cc205-8d40-4baf-944b-7d110f8d7a9c" name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">123</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_add3d575-bd8b-464a-a041-9901a3a371bd" contextRef="C_025cc205-8d40-4baf-944b-7d110f8d7a9c" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8c87501f-2ef9-43c0-b1a7-35554aaaf27f" contextRef="C_63361188-0704-4e53-a4f8-ee4bc36d4c95" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">622</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d392e553-f732-40d0-a119-61cd41b6732d" contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">621</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Share based compensation earned</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ab0b8325-437e-4367-bfea-f9db06765738" contextRef="C_63361188-0704-4e53-a4f8-ee4bc36d4c95" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">808</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8a1f46cb-326b-4546-bcd0-a45c0eb2bc5b" contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">808</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Translation gain</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e14b21c5-19d1-4e56-a08a-aaa0d3edbd2b" contextRef="C_075aff28-c277-466b-aa65-832c445c2571" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">766</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_af5843ad-6970-4c29-978c-ab29a8841cdd" contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">766</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance March 31, 2023</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c9552323-0f9c-455a-9ca5-dd03c4d4a225" contextRef="C_43496f44-5f4e-4927-92e2-12adb3779d75" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,557</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_67a8b3ec-50e2-4ad8-bd1d-3391a3eee3ba" contextRef="C_43496f44-5f4e-4927-92e2-12adb3779d75" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">346</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_251c3605-1592-44c8-8c8b-67d81fab9378" contextRef="C_a0d70f96-cc7d-4573-a235-17a155aa32cf" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">250,971</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_95ec126e-8140-4b49-b85f-aa440eecb75c" contextRef="C_de8921fa-e123-403f-a89e-0f89fe00e956" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">17,320</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9f579f58-25c9-4c99-b518-531f2d30d032" contextRef="C_dd6a1aef-4b8c-4998-8b9c-7c19aecf7d4c" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">17,230</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_125d3051-59cc-4b2b-9b69-14df83fefde8" contextRef="C_0f9752f6-f439-49bd-8e82-a29a0fa2ef85" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,415</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_70db4806-35ae-415b-b064-75f2f03e9028" contextRef="C_dabb3e39-4cf8-4cf3-9892-ef27de1f36e6" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">222,182</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income for the three months ended June 30, 2023</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7eae5912-6fd5-408f-b242-ef262062e6e4" contextRef="C_a4849349-5942-4bf8-99e7-2369f3306cf5" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,724</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3da6dd7a-8ab8-4065-999d-f77d37f66f96" contextRef="C_41a854ea-1135-458f-87da-1f44f2144c51" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">266</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_803641ed-aab1-4adf-a830-657cde563c6b" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,990</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Exercise of stock options</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0aa203ef-c28c-4fb5-9c78-a701480004da" contextRef="C_4035f7da-d67e-4954-be7a-ebb558685f77" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">25</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7de29102-e897-4dc2-b11d-942323128288" contextRef="C_826735e3-d4df-4c93-b413-1f84f74a82a1" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">317</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_029a99a5-3700-4ab3-be89-63e206b800bb" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">317</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Restricted stock units issued</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a5a740a3-cf81-4b5e-928b-549f28d4d9c6" contextRef="C_4035f7da-d67e-4954-be7a-ebb558685f77" name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">132</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_565453b8-4729-4e8e-8983-8abb46ad6236" contextRef="C_4035f7da-d67e-4954-be7a-ebb558685f77" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_09a19a86-4e8b-418c-a794-0c70ac587d2e" contextRef="C_826735e3-d4df-4c93-b413-1f84f74a82a1" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">271</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a87c1056-a551-4574-a573-c1e72231f495" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">270</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Share based compensation earned</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_efe5c843-2c81-4044-b355-ab820f2c3bd8" contextRef="C_4035f7da-d67e-4954-be7a-ebb558685f77" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">24</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dff17feb-5313-4880-9946-08172fd72083" contextRef="C_826735e3-d4df-4c93-b413-1f84f74a82a1" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,389</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3b7fa8de-ac48-4ca7-805d-4bc45786b6b4" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,389</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Translation gain</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_de61d1ac-8883-4486-9a64-2c1d8f2a1876" contextRef="C_3373058d-aad6-4f03-8c90-2c4065c64dd5" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">139</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c9ca8971-203e-43f4-a36a-6eb65229c3b9" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">139</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Noncontrolling interest distributions</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_177df5ed-cb46-4550-a31c-5bb5d6939e14" contextRef="C_41a854ea-1135-458f-87da-1f44f2144c51" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">599</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;text-align:center;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5b8bd1a7-1f50-42ed-9847-6227f56a5c57" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">599</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:7pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance June 30, 2023</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e4a818c5-c308-4197-9cc1-cad30cd637df" contextRef="C_11370468-b175-4073-8c99-42a16caa2ba9" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">34,738</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8ea2b03a-0819-470e-a444-c46026c33e31" contextRef="C_11370468-b175-4073-8c99-42a16caa2ba9" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">347</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d52dd053-c8c5-420d-a53f-faa0f69e5af6" contextRef="C_b93bb5d1-3363-47a1-b510-579f7a79a069" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">252,406</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8e0ac532-8ab4-4368-94f0-fcca40f7e38c" contextRef="C_a268f94b-df62-41e1-82fb-011408c77eb7" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">13,596</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:7.5pt;min-width:fit-content;">(</span><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2b655f91-c28e-4ad8-8ed1-e06c9583cf0d" contextRef="C_452b3b23-e015-4639-8e24-8004aa284162" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">17,091</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_907273de-b828-4dfc-994f-aaa434705f30" contextRef="C_8d8d383b-3f59-464a-82cf-711cf15f8c2d" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,082</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #000000;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:top;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:7.5pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7764bc87-7f3d-4000-b0da-b577a26f9b14" contextRef="C_4ae7e10f-e6a0-4338-afa2-eb839c19e635" name="us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">227,148</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:top;border-bottom:2.25pt double #ffffff03;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The notes to the condensed consolidated financial statements are an integral part of the above statements.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_cash_f"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CONDENSED CONSOLIDATED S</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">TATEMENTS OF CASH FLOWS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(unaudited)</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:63.367%;"/>
    <td style="width:1.5%;"/>
    <td style="width:1%;"/>
    <td style="width:14.817%;"/>
    <td style="width:1%;"/>
    <td style="width:1.5%;"/>
    <td style="width:1%;"/>
    <td style="width:14.817%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:7.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cash flows from operating activities:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_676afaa2-f834-404d-b3ce-7ac58a936c1f" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,022</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0f572ce6-6e4f-47f2-8ded-bfa2fa66c9bb" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,460</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Adjustments to reconcile net income to net cash provided by (used in) operating activities:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Depreciation and amortization</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_55bafd9d-a1c3-4747-ac57-6b8ec0d94c94" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,973</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_825bf959-9874-4e41-9c89-91638a4c3cfa" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,650</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Unrealized foreign currency gain (loss)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d0054c30-3939-48af-9352-eff42a7bc367" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ForeignCurrencyTransactionGainLossUnrealized" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">691</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9feb9d42-b407-4ba0-a5bc-79432dfde3bd" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ForeignCurrencyTransactionGainLossUnrealized" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">863</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Fair value adjustment to earnout liabilities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_60ec69e0-f33b-4b03-80ab-77c53b918dcf" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4d4d18ad-77b3-4a0f-84ff-29a94c438908" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">296</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Gain on sale of property and equipment</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ce210e6e-7e80-43b1-a4de-c13856353e18" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">126</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b069d0f9-1106-46f3-8279-ff45d16d8029" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">78</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Debt discount amortization</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1b32237a-c9a8-49b5-afc7-a1044323ef45" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:AmortizationOfDebtDiscountPremium" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">240</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_40c4a907-67b6-4c73-a29c-c0791bfd35be" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:AmortizationOfDebtDiscountPremium" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">182</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Share-based compensation expense</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a7a97266-97cd-4744-b153-6ff3c64f2ad9" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,847</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6eb97715-ec71-4ac9-9a92-20171b3733c3" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,967</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Bad debt expense (recoveries)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_861dfc60-4667-42b5-99da-b7b1f43d376a" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ProvisionForDoubtfulAccounts" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">267</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bdd6d2f6-a531-4b8e-ae72-641cb406ae07" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ProvisionForDoubtfulAccounts" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">23</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Inventory reserve expense</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a582dad5-9217-4331-8d87-1c36078fdc2b" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:InventoryReserveExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">669</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7f38dd63-7e1e-4615-a192-d420ec9f14e9" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:InventoryReserveExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">551</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_44dfc2e4-d088-443d-8236-3ac97eeee259" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:OtherNoncashIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">22</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1b897401-477e-41cf-b9ec-9c69abe42f69" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:OtherNoncashIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Changes in operating assets and liabilities, net of acquisitions:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_19f7ba3d-1ec5-44ea-8cea-d5c3cccbd7ff" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,295</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f5b3d7ff-073c-4381-8e00-fa54c94e2969" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">39,181</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Costs and estimated earnings in excess of billings on uncompleted contracts</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_56e44a5f-a38c-48ca-8d86-7589ea0b1564" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">10,610</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3227e25c-4cf4-42de-befd-c0d9fdc4aeef" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">9,596</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Inventories</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6d737196-4263-43df-92e6-3a5f71321c66" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncreaseDecreaseInInventories" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,151</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c4576bd1-d8e5-4c51-9002-2808a3e16ff8" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncreaseDecreaseInInventories" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,081</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid expense and other current assets</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_be4fe753-c9c1-45b5-806d-26f69a815276" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,164</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b6697563-17eb-4c03-9de3-8290b7b08e0b" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,319</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred charges and other assets</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fb277e8a-91e3-4f76-b88c-b7e4ee57d9c1" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:IncreaseDecreaseInDeferredChargesAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">412</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_817ccb20-efe5-497c-b699-4f187803efca" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:IncreaseDecreaseInDeferredChargesAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">306</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts payable</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5eae76b5-3108-4987-9560-32c8e810e677" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,719</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_323935e3-c79c-4826-b45b-45b44770c2e3" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,594</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_767a9f47-1adf-4743-ba4e-5ba97fdb9dc9" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,566</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_63f0f36a-64b7-41ba-925f-b3ad0770bb07" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,692</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Billings in excess of costs and estimated earnings on uncompleted contracts</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_aed47634-3410-4352-808d-60faa6f7c10a" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,060</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e8308a46-ae95-41bb-afce-05c06e138de7" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26,005</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Income taxes payable</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9fc032ed-ada5-4db2-a396-1d32d6bd650e" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">68</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_162a9f78-7df6-496c-ab3c-232def5c183a" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">601</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other liabilities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dcb05782-3b39-47ca-8a3a-bf950a807123" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">6,967</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2762c67a-b3a5-4963-a163-fae95029bf4a" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncreaseDecreaseInOtherOperatingLiabilities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,126</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net cash provided by (used in) operating activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cc7f9ef8-730e-49ff-ac99-924313179127" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,891</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_faa443cb-8efa-474c-a410-4b87d7d1d09f" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">611</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cash flows from investing activities:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisitions of property and equipment</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3940e0bb-9a22-4dfe-aa06-27aa4de785d0" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,233</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f431f06a-f3c6-4251-9238-f80e429dba29" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,919</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net cash received (paid) for acquisitions</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7543fd88-80db-4c40-b320-f26e255ddc90" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:PaymentsForProceedsFromInvestments" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">422</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ce28996f-5e36-442e-b3d8-ebd74c047ed7" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:PaymentsForProceedsFromInvestments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,142</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net cash used in investing activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7b76232b-ab41-44f2-8a30-0af611dee7e8" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">6,811</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e81d431d-5332-4386-bcda-7db40c73cf99" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">28,061</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cash flows from financing activities:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Borrowings on revolving credit lines</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0e5db477-d95e-49ec-8e30-de11cc1c1cd2" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:BorrowingsOnRevolvingLineOfCredit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">21,700</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_42e7883d-393f-4b5d-9706-ff1df8c1b1e2" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:BorrowingsOnRevolvingLineOfCredit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">65,300</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Repayments on revolving credit lines</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_087707a1-009a-4711-8df8-9b4d27be01d0" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ProceedsFromRepaymentsOfLinesOfCredit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">23,200</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c7624990-c00a-45e1-94fa-d061be7b4271" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ProceedsFromRepaymentsOfLinesOfCredit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">33,400</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Repayments of long-term debt</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_121d82da-4b59-4f6b-91b0-a833015ecff6" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:RepaymentsOfLongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,198</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3a4c5086-e66e-45ff-b7c4-ad3146009155" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:RepaymentsOfLongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,652</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Payments on finance leases and financing liability</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9341179a-4393-44eb-93c8-14dc1c23ee5c" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:PaymentsOnFinanceLeasesAndFinancingLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">458</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_adc593e0-5975-44db-a1c6-1b45057d5d40" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:PaymentsOnFinanceLeasesAndFinancingLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">450</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred consideration paid for acquisitions</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6883df43-852a-4f07-a7d1-48614e565cd3" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:DeferredConsiderationPaidForAcquisitions" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,050</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1c94ea81-e0de-4a26-8d21-4b8a0ad51be1" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:DeferredConsiderationPaidForAcquisitions" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">857</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Earnout payments</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cbdd63c2-19d7-4d13-a1f8-daca141110b5" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,672</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b47e34fc-49d4-4369-b71d-9871583bbe20" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="ceco:AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Proceeds from employee stock purchase plan and exercise of stock options</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_28ead0d8-1cbf-4154-9c77-eedcc385a494" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">418</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1ef66471-ec73-474f-a8a9-e85a8454c47a" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,156</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Noncontrolling interest distributions</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ee545e8f-98ea-4938-addd-5bdb29dd43a0" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:PaymentsToMinorityShareholders" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,105</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d4e321cd-910c-48ff-ba0b-55d4109efe46" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:PaymentsToMinorityShareholders" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">599</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock repurchased</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_48a880a6-fffa-4cc5-8ec1-0081cf8c7ca9" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:PaymentsForRepurchaseOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,000</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4593d50b-dca0-4fe3-b0bf-065b866c6067" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:PaymentsForRepurchaseOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net cash (used in) provided by financing activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2ff75b0e-c0c6-42a3-a962-516a88b83f58" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">16,565</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c9960aab-8aad-40ee-b1d1-27d2c975707b" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">29,498</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Effect of exchange rate changes on cash, cash equivalents and restricted cash</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0316fad3-b9e2-4b7d-ae25-2090de95e2fe" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,049</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_50ca7e84-6d62-4958-bc4e-0308d165031f" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,141</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net (decrease) increase in cash, cash equivalents and restricted cash</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;min-width:fit-content;">(</span><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_19daaef5-c704-4f92-a1c4-e5bbe4e232a9" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">18,534</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f9759cfa-8e18-4c7f-bca4-5280febf6d07" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,967</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cash, cash equivalents and restricted cash at beginning of period</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bd3bf244-e666-4738-a93a-ce9b71062866" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">55,448</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dce997c5-a683-482f-8a87-f49da55f8a33" contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">46,585</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cash, cash equivalents and restricted cash at end of period</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_98952688-5e77-42e2-8721-9694b4d1a83e" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,914</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_056d0278-78ca-4a43-a2ae-786d2dfff447" contextRef="C_4ae7e10f-e6a0-4338-afa2-eb839c19e635" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">48,552</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cash paid during the period for:</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Interest</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_af103b89-8fcb-4b50-b24f-401c4f60656e" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:InterestPaidNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,574</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bf12ed25-3cbe-4fa9-99cf-42ca7930a1ed" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:InterestPaidNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,380</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Income taxes</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_52723c49-013e-4436-8e49-179932bbbdc7" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncomeTaxesPaidNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,801</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:9pt;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2193b66a-20b0-47eb-a9f0-bf51d7fabd3e" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncomeTaxesPaidNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,605</ix:nonFraction></span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The notes to the condensed consolidated financial statements are an integral part of the above statements.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CECO ENVIRONMENTAL CORP. AND SUBSIDIARIES</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="notes_consolidated_financial_statements"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">N</span><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">OT</span><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(unaudited)</span></p>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_2c666882-d567-493d-85d1-96069e7f217d" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">1.	Basis of Reporting for Consolidated Financial Statements</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements of CECO Environmental Corp. and its subsidiaries (the &#8220;Company,&#8221; &#8220;CECO,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;our&#8221;) have been prepared pursuant to the rules and regulations of the Securities and Exchange Commission (the &#8220;SEC&#8221;). Certain information and footnote disclosures normally included in financial statements prepared in accordance with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) have been condensed or omitted pursuant to those rules and regulations. In the opinion of management, the accompanying unaudited condensed consolidated financial statements of the Company contain all adjustments, consisting only of normal recurring adjustments, necessary to present fairly the financial position as of June 30, 2024 and the results of operations, cash flows and shareholders&#8217; equity for the three and six months ended June 30, 2024 and 2023. The results of operations for the three and six months ended June 30, 2024 are not necessarily indicative of the results to be expected for the full year. The balance sheet as of December 31, 2023 has been derived from the audited consolidated financial statements included in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2023 as filed with the SEC on March 5, 2024 (the &#8220;Form 10-K&#8221;).</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">These financial statements and accompanying notes should be read in conjunction with the audited financial statements and the notes thereto included in the Form 10-K.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Unless otherwise indicated, all balances within tables are in thousands, except per share amounts.</span></p></ix:nonNumeric></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_84d9898a-8220-447b-b297-02603eba1952" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2.	New Financial Accounting Pronouncements</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_956451e9-da69-47b8-9a9f-a296cfad32dd" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounting Standards Adopted in Fiscal </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2024</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">None.</span></p></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_33e98780-271c-4ff7-b60d-e33fe58bddcd" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:NewAccountingStandardsNotYetAdoptedPolicyTextBlock" escape="true"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounting Standards to be Adopted</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In December 2023, the Financial Accounting Standards Board (the "FASB") issued Accounting Standards Update ("ASU") 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which addresses income tax disclosure requirements, primarily around the disclosure of the rate reconciliation and income taxes paid. The ASU is effective for fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#8217;s consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In November 2023, the FASB issued ASU 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which addresses segment disclosure requirements, primarily the disclosure of significant segment expenses. The ASU is effective for fiscal years beginning after December 15, 2023, and interim periods beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#8217;s consolidated financial statements.</span></p></ix:nonNumeric></div></ix:nonNumeric></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_55e062cd-d226-42bf-af02-b1862fe8ff07" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3. </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">	Accounts Receivable 	</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_e6affbd7-b563-4e2d-83fd-f181bb6e52b9" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" escape="true"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_31115e7a-5b81-4643-a2b9-512790ea6218" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AccountsReceivableGrossCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">133,556</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_812765ce-d10b-4312-aa4c-5afe20984560" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AccountsReceivableGrossCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">119,193</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Provision for credit losses</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_755fe5c1-9ebe-4a3c-a714-13bad9b8879d" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,582</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_55c6cb05-07e8-418c-af7a-df7cdd655539" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,460</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accounts receivable, net</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a32e760d-d19e-4d09-b7ad-c57219372568" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,974</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2f8088b5-7f23-44d8-b964-adce3e21465d" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">112,733</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable, net as of the beginning of the prior year period, or January 1, 2023, were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6e6fa2e8-f656-4301-a976-aa893c892c0a" contextRef="C_2b349de6-f0d4-4ecc-a8d1-0ccf096c6c1a" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">83.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million.</span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7</span></p></div></div></ix:exclude><ix:exclude>
     <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Balances billed but not paid by customers under retainage provisions in contracts within the Condensed Consolidated Balance Sheets amounted to approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_061842e3-c0bc-452b-83e1-158e364b4b24" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="ceco:ContractReceivableRetainage1" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_476d32ca-55c3-4229-8494-054801d7cd7a" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="ceco:ContractReceivableRetainage1" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million as of June 30, 2024 and December 31, 2023, respectively. Retainage receivables on contracts in progress are generally collected within a year or two subsequent to contract completion, and are recorded in either "Accounts receivable, net" or "Deferred charges and other assets" within the Condensed Consolidated Balance Sheets depending on timing of expected collection.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amounts charged to (recovered from) the provision for credit losses was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_47d5e625-c665-455d-b3ab-484559306018" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:ProvisionForOtherCreditLosses" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$(</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7a71031f-2bfb-424d-98fd-ca9ca50bf942" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:ProvisionForOtherCreditLosses" unitRef="U_USD" scale="6" decimals="-5" sign="-" format="ixt:num-dot-decimal">0.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">)</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the three months ended June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2c75e306-a506-445e-9b34-09983fc8672a" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ProvisionForOtherCreditLosses" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dd215a68-2b3a-4da0-86cd-4b29609ab973" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:ProvisionForOtherCreditLosses" unitRef="U_USD" scale="6" decimals="-6" format="ixt-sec:numwordsen">zero</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for the six months ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p></ix:nonNumeric></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_c217f699-39d4-4bd5-aa57-16133017571a" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4.  </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">	Contract Assets and Liabilities 	</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_678af98e-e20d-484e-a394-d64bf78cc3b3" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" escape="true"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Contract assets and liabilities as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:59.792%;"/>
        <td style="width:1.68%;"/>
        <td style="width:1%;"/>
        <td style="width:16.423%;"/>
        <td style="width:1%;"/>
        <td style="width:1.68%;"/>
        <td style="width:1%;"/>
        <td style="width:16.423%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Costs and estimated earnings in excess of billings on uncompleted contracts</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cb357131-3686-4aa7-9026-d5ab93d9d78f" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:ContractWithCustomerAssetNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">55,378</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_efe6c97e-dda5-4524-b372-698152866e42" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:ContractWithCustomerAssetNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">66,574</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Billings in excess of costs and estimated earnings on uncompleted contracts</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_12532554-ca5c-4e9d-85f5-84dee29f4c4b" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">59,851</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_abec857a-d081-4ef9-9020-fb9da8fb7cc2" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">56,899</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of the beginning of the prior year period, or January 1, 2023, costs and estimated earnings in excess of billings on uncompleted contracts and billings in excess of costs and estimated earnings on uncompleted contracts were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_58b48367-3d2c-43fd-a96c-ec7d6c9164ac" contextRef="C_2b349de6-f0d4-4ecc-a8d1-0ccf096c6c1a" name="us-gaap:ContractWithCustomerAssetNetCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">71.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_b1e1c33d-4c67-4bab-9f58-a7b441edc59e" contextRef="C_2b349de6-f0d4-4ecc-a8d1-0ccf096c6c1a" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">32.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. The contract liabilities recorded in &#8220;Accrued expenses&#8221; on the Condensed Consolidated Balance Sheets were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_b42de744-172f-4c9d-bb37-97761ab41c68" contextRef="C_e1612251-f088-46b2-acb5-991ee0c4d66b" name="us-gaap:AccruedLiabilitiesCurrentAndNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">9.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_38a85358-7f84-4773-bf62-2ae8cbb865b4" contextRef="C_36e74a25-4e6f-4a38-91c6-c90ceb48802e" name="us-gaap:AccruedLiabilitiesCurrentAndNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">7.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_bbe4dddd-6850-4cbe-94ac-c13c0c309f61" contextRef="C_467bb776-a6b7-46e4-b2e6-701f8443e8a1" name="us-gaap:AccruedLiabilitiesCurrentAndNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024, December 31, 2023 and January 1, 2023, respectively. Approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a891fe32-0d7e-4270-86a2-6e94e28bd363" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:ContractLiabilitiesRecognizedAsRevenue" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">70</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of the Company's contract liabilities as of December 31, 2023 were recognized as revenue in the six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:11pt;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_0c7768c3-f8f0-407a-b7cc-4dffd3fdb709" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:InventoryDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.	Inventories</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_04ddf537-b205-4463-9b36-b049b9c16aeb" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" escape="true"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.553%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.683%;"/>
        <td style="width:1%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.683%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Raw materials</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f08dd5c4-baca-43a5-923f-b3374bd6741c" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:InventoryRawMaterials" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">27,869</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2bcf0b74-566b-4c13-86cb-c2d33ab9a5b8" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:InventoryRawMaterials" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,819</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Work in process</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_52a2f66d-522d-49e0-bd20-020e012c726f" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:InventoryWorkInProcess" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,732</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c3a06692-7e2e-4a6b-80eb-e584ae2cd8db" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:InventoryWorkInProcess" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,710</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Finished goods</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_36a6b24e-c55f-4f19-9e08-4eefae691ad4" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:InventoryFinishedGoods" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,905</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bcc488d1-ae07-4ddf-9088-015a847df201" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:InventoryFinishedGoods" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,368</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Obsolescence allowance</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8f04d9dd-42ec-431c-a92c-203bee17e81f" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:InventoryValuationReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,031</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ccbd2f41-c643-43c5-9ffb-80851d23e786" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:InventoryValuationReserves" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,808</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total inventories</span></p></td>
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b712d818-f226-482e-a64f-582f62e3e72f" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,475</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1e0b8c51-e184-4ac8-a04d-582bab99f684" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:InventoryNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,089</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amounts credited to the allowance for obsolete inventory and charged to cost of sales amounted to </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dd59aac1-ec48-4fba-b6c8-2b5e0a906e86" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:InventoryWriteDown" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_73a1a786-8606-4d0d-8566-022e1708383f" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:InventoryWriteDown" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the three months ended June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4bfcdf4f-7b9d-4371-834c-be36b2f9b6b4" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:InventoryWriteDown" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_577923ec-cefd-4e44-849e-f73436a9ea38" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:InventoryWriteDown" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the six months ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p></ix:nonNumeric></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">8</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_b0caac0e-c550-4cff-9f6a-4ab239ef79f3" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6.	Goodwill and Intangible Assets</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_63fb31ef-9150-4955-8ee0-c4fef31a0ce3" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and the year ended December 31, 2023 was as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.009%;"/>
        <td style="width:1%;"/>
        <td style="width:1%;"/>
        <td style="width:12.703%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:10.382%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:10.421999999999999%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:10.421999999999999%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Year ended December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill / Tradename</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Tradename</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Tradename</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_185399d7-4772-4bfb-8c4d-a7390f5213e5" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,326</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_668ed5b7-ccb7-4c37-bfc3-99cff6016c70" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,570</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e28b846c-bc98-4cd2-8bc1-29b09852cc0f" contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">183,197</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_39b4d6bf-65c9-487a-a3f5-36d362f1efbb" contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f" name="us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,508</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisitions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4db0f0a8-1153-4272-9f21-899e8c533753" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:GoodwillPurchaseAccountingAdjustments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">110</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5898b8cc-d8d6-493f-a955-ea0db58a4834" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_62531e8b-69b8-46fe-8ab9-a5c67ab1360d" contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30" name="us-gaap:GoodwillPurchaseAccountingAdjustments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">27,152</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b29bfbd3-dac6-4024-a58e-47f1234e6d9f" contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30" name="us-gaap:IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency translation</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_330b19ce-d438-4ef3-b12c-dc66afb336b6" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">292</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6c369554-f5f5-4934-9948-d7a4e34eadb7" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">48</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2fb49878-5c55-4156-81fa-d3fa3a8f54a1" contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">977</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_979477f8-ca5a-42f3-80cb-bf7f9040c945" contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30" name="us-gaap:IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">62</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_03138d15-4b9a-4c03-83a4-2ff016aa2dc2" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,144</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_70051da9-7cba-4232-aa6b-d988e215b35a" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,522</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_161a3bad-acd6-44a6-a60d-6ef1136593a8" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,326</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_de8b525f-f195-4231-a57e-cd8ae42be98c" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,570</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the first quarter of 2024, the Company recorded measurement period adjustments related to the acquisition of Kemco Systems Co., LLC ("Kemco"), as discussed in Note 15, resulting in an increase to goodwill.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_9e20a575-d26b-4c2a-bfb4-aec5be0ff4fb" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" escape="true"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Finite life intangible assets as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.009%;"/>
        <td style="width:1%;"/>
        <td style="width:1%;"/>
        <td style="width:12.002%;"/>
        <td style="width:1%;"/>
        <td style="width:1%;"/>
        <td style="width:1%;"/>
        <td style="width:11.062%;"/>
        <td style="width:1%;"/>
        <td style="width:1.04%;"/>
        <td style="width:1%;"/>
        <td style="width:10.421999999999999%;"/>
        <td style="width:1%;"/>
        <td style="width:1.04%;"/>
        <td style="width:1%;"/>
        <td style="width:10.421999999999999%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Cost</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accum. Amort.</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Cost</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accum. Amort.</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Technology</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8cdece97-66e5-42d3-afed-853914f054cc" contextRef="C_c414f97d-9f9b-43c9-a9e9-bed9d1236d0c" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,508</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c5f33c26-790d-45a7-a1d9-bdb74abef8e2" contextRef="C_c414f97d-9f9b-43c9-a9e9-bed9d1236d0c" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,388</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cceb6940-94ff-4b1d-be10-0e5d9e8f7545" contextRef="C_a018f1b2-658d-4c69-b7f7-dbf160e42516" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,517</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_515e9b94-1ec9-4729-b070-cd5066b15587" contextRef="C_a018f1b2-658d-4c69-b7f7-dbf160e42516" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,061</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Customer lists</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_855c8911-ed35-43eb-8eb0-c256541b01d4" contextRef="C_cd0842a7-b2f7-4e1d-980f-d73684a2e49f" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">103,471</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9200f8f2-8cca-4511-b813-a2ae66c24f0c" contextRef="C_cd0842a7-b2f7-4e1d-980f-d73684a2e49f" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">66,721</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_786db812-9bee-4154-8d66-4b7e3ef96e73" contextRef="C_e0fc021a-2670-48f7-ae3d-aa548ef6c5be" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">103,471</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d7bcfa45-0f04-4d34-9d90-696656dcf282" contextRef="C_e0fc021a-2670-48f7-ae3d-aa548ef6c5be" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">63,420</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Tradenames</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9a52d2a6-a20b-4fb1-962c-5a164ae3527e" contextRef="C_1a1e5efc-70ef-4256-b2a7-2de7d34fff85" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,094</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_87392f63-1c57-4518-b0fb-eb3fe7e4273f" contextRef="C_1a1e5efc-70ef-4256-b2a7-2de7d34fff85" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,688</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0c66b344-f819-4012-8f3a-f7748066fc1e" contextRef="C_00cd23d2-d68f-4afc-8c8f-2c64af7a8739" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,094</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_77ffc2f6-928b-4c2f-a1ff-4ec5c7109c69" contextRef="C_00cd23d2-d68f-4afc-8c8f-2c64af7a8739" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,001</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency adjustments</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_66011dc9-af77-4678-b319-41f65d889b90" contextRef="C_7205a319-ed90-4a5b-845e-c56b957a9a39" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,397</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_11b067b6-4fac-4f88-9f5f-0ceda3d052d9" contextRef="C_7205a319-ed90-4a5b-845e-c56b957a9a39" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">207</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2bf33a40-44f4-410f-b9bd-a0fc1c59154a" contextRef="C_2c8a4156-257c-4771-99eb-aa35394e53e8" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,083</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ff6e0b02-f8ae-48f5-bb8d-21fc34f9c8c6" contextRef="C_2c8a4156-257c-4771-99eb-aa35394e53e8" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">56</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total intangible assets &#8211; finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_acd00529-518d-46c1-9fc0-e68241368984" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">132,676</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_84e27e9e-e5c4-4d9c-bc67-bfbc973cee05" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">86,590</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ad0ede92-6efd-4982-b414-2a554681e525" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">132,999</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7288db92-6173-4bbf-a8b3-4a6e95dcce83" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">82,538</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><ix:nonNumeric id="F_7f4dc617-9657-4fd5-81bc-2c6cf9b3bf04" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Finite life intangible asset activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023 was as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets &#8211; finite life, net at beginning of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ab31daad-7aab-4c51-ac7b-d44626da3dd1" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">50,461</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c78e32a0-8886-4cac-a584-85e4dcf99cf0" contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">35,251</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization expense</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ead63dcc-a986-4a08-85a9-418cd28b7399" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,315</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c3632376-adb4-435e-81a8-af8ef23e9b49" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,430</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisitions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_00a43ed3-882c-4164-8974-d2446d24681b" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:fixed-zero">&#8212;</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0e17c5f4-796d-4b0d-af0b-a4db06d6cc8b" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,708</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency adjustments</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_48df1f65-211d-444a-bd17-1acd1899f1e5" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">60</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_17303bff-d1be-4681-b0aa-5a22a7d621b9" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">370</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets &#8211; finite life, net at end of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_42ed1aba-c9e3-4a49-a6fb-9960de9d2dd0" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">46,086</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b998c361-82e7-4cd6-950b-0d5df9d713d4" contextRef="C_4ae7e10f-e6a0-4338-afa2-eb839c19e635" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">42,899</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amortization expense of finite life intangible assets was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_7e0cd8e3-b34b-4c6d-ae9d-897fd90367c9" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_476ded04-992a-4140-9b68-264c934a62b9" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e6504dd1-e09c-4d08-ac34-ffe2313d1804" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_0f2700d1-aafa-4484-9615-6b2be04e06ce" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023, respectively. Amortization over the next five years for finite life intangibles is expected to be </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_250073c9-9982-4047-af0f-8352980d1e1b" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the remainder of 2024, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d3d401ca-1ea8-40e8-9f12-67a7abf4ae57" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">7.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2025, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1749832c-4016-47a8-9b52-6afc81eccb55" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">6.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2026, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3b7cb116-820b-42d9-a26f-ff463a25ec7c" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">6.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2027, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_911133a5-94c4-47b6-baed-417320e44b36" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">5.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2028.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company completes its goodwill and indefinite life intangible asset impairment assessment annually in the fourth quarter, or more often if circumstances require. As a part of its impairment assessment, the Company first qualitatively assesses whether current events or changes in circumstances lead to a determination that it is more likely than not, defined as a likelihood of more than 50 percent, that the fair value of a reporting unit or indefinite life intangible asset is less than its carrying amount. If there is a qualitative determination that the fair value is more likely than not greater than the carrying value, the Company does not quantitatively test for impairment. If this qualitative assessment indicates a more likely than not potential that the asset may be impaired, the estimated fair value is calculated. If the estimated fair value is less than carrying value, an impairment charge is recorded.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of June 30, 2024, the Company reviewed its previous forecasts and assumptions based on its current projections, which are subject to various risks and uncertainties, including projected revenue, projected operational profit, terminal growth rates, and the cost of capital. The Company did not identify any triggering events during the three or six months ended June 30, 2024 that would require an interim impairment assessment of goodwill or intangible assets.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s assumptions about future conditions important to its assessment of potential impairment of its goodwill and indefinite life intangible assets are subject to uncertainty, and the Company will continue to monitor these conditions in future periods as new information becomes available, and will update its analysis accordingly.</span></p></ix:nonNumeric></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">9</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_7c2393fc-3b78-4d65-9048-8a26c1bfcebd" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7.	Accrued Expenses</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_8382724d-cc1a-40a7-ad77-ad03f5c94c07" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accrued expenses as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Compensation and related benefits</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_79610dfe-799a-4812-835e-17a656078534" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,854</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_487f7cf0-6b46-4d80-8ede-7df549f44439" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,278</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued warranty</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d2e27ac0-b8a8-4a6b-a7c7-e18bc5f6f5d0" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,478</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1d952547-49b8-4a1a-b6e6-4f8127623b3f" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,105</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Contract liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_19b8d428-2ed2-4897-9337-3e95a5cc6b6e" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="ceco:ContractLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,197</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e0a70510-75b5-4dea-be05-ee8a8b8c986e" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="ceco:ContractLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,875</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short-term operating lease liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2c744be6-fc83-4493-815a-2eb0cdaadc09" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="ceco:LeaseLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,950</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e5851b41-a1c6-4a49-98e8-55bbe5dbe481" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="ceco:LeaseLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,278</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0f67f41d-be9d-45ae-a3f5-fc62f4d9892f" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:OtherAccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,257</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9ae9f084-43bf-4518-b99e-d9f1eef2ef96" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:OtherAccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,765</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accrued expenses</span></p></td>
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c4e536de-be9b-4095-984e-f05ec2632f4b" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:AccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">44,736</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4caaaf4c-2d62-43c3-a1a7-5b85796f887f" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:AccruedLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">44,301</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_0edff583-c902-474d-b65b-92f6d3f17adb" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:DebtDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">8.	Senior Debt</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_cb94b33c-21cb-492d-8fae-9a5fc13162f0" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfDebtTableTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Debt as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:68.754%;"/>
        <td style="width:1.58%;"/>
        <td style="width:1%;"/>
        <td style="width:11.902000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.58%;"/>
        <td style="width:1%;"/>
        <td style="width:12.182%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Outstanding borrowings under Credit Facility (defined below)<br/>&#160;&#160;&#160;&#160;&#160;Term loan payable in </span><span><ix:nonNumeric id="F_a93213e4-2fca-42de-8bf6-0ce93d014325" contextRef="C_7436e234-3623-461d-b988-e60995d6a771" name="us-gaap:DebtInstrumentFrequencyOfPeriodicPayment"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">quarterly</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;principal installments of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_46b5e4aa-27a3-4227-8496-7a0a41d6bb72" contextRef="C_f1d8c224-eeb9-4076-907e-840c7028a2ae" name="us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">550</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;through September<br/>&#160;&#160;&#160;&#160;&#160;2023, $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_238a0223-58e1-48b3-ac1b-f28813cf7219" contextRef="C_2edb3a2e-f9ec-4841-9ec6-21e75ef00b8c" name="us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,232</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;through September 2025 and $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_98b27857-dfeb-43ba-a80d-7c98cd90e2d0" contextRef="C_d3f73ada-3db6-4e21-8188-fd15ee65304d" name="us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,977</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;thereafter with balance due upon<br/>&#160;&#160;&#160;&#160;&#160;maturity in December 2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Term loan</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c61314e7-3342-46f1-8b1e-4d8eba01e4b1" contextRef="C_312b96ea-ee3c-43b5-933a-d65043f455a4" name="us-gaap:LongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">107,959</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6eaf6de5-bcb4-44c6-9834-e7321d73d875" contextRef="C_e3b2c967-afa0-4d33-9e76-b5e7187e533b" name="us-gaap:LongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">112,424</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Revolving credit facility</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a9da042e-dd66-470b-9596-23f644be9d60" contextRef="C_db1a5d1e-9a28-486d-acf1-ef093b253c27" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">15,800</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fc488a93-c349-42a5-9868-e5bf504d0ce7" contextRef="C_332373d6-9305-4dc3-b6d8-7c09bd6b203d" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">17,300</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total outstanding borrowings under the Credit Facility</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fae9ddb0-2519-4e2b-bf4f-acc1f84823aa" contextRef="C_9ee6fcc3-ffb2-4d85-9493-f70f41857445" name="us-gaap:LongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">123,759</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b5db56e1-cf93-4daa-bac8-e3757140babe" contextRef="C_8d9dd0fa-eeae-49e5-9562-18d1558786cb" name="us-gaap:LongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">129,724</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Outstanding borrowings under the joint venture term debt</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_72b11b9f-b462-4a81-aaeb-ef7f9047207c" contextRef="C_20ad0766-ebe6-4ca3-a137-5724798774e5" name="us-gaap:WarehouseAgreementBorrowings" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,123</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b1d72700-1346-4d25-a51c-90c3db718da9" contextRef="C_51832032-b6bb-40d0-8eb8-ee78b2df72e5" name="us-gaap:WarehouseAgreementBorrowings" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,855</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Unamortized debt discount</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_187d540a-5ee8-48ce-9f9e-097f41033250" contextRef="C_ad40e8cf-f2fd-488f-ad89-bf9bd65602d7" name="us-gaap:DebtInstrumentUnamortizedDiscount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,056</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7e8c34e4-557b-4ac0-a2ee-cbb12d929808" contextRef="C_74a8fc1b-f6be-4fc4-a0b9-9d15cc2d0f6b" name="us-gaap:DebtInstrumentUnamortizedDiscount" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,296</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total outstanding borrowings</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_babf986f-9c6c-426a-bd1c-298f735618db" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">130,826</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fa5610b5-1df3-4c56-8679-056602190a54" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:LongTermDebt" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">137,283</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;&#160;&#160;Less: current portion</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0ab9c770-5826-4498-81da-dd6707886c24" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,580</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_151775af-c1d4-467f-8e0b-b55389004476" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:LongTermDebtCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,488</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total debt, less current portion</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4805d729-2d18-4652-ad36-929437ff230f" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">120,246</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1e33723d-45ab-48af-911d-82d1235e1550" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:LongTermDebtNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">126,795</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Scheduled principal payments under the Credit Facility and joint venture term debt are </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_38738f67-57aa-4ec8-a0b9-5857b8f0cf69" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">5.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the remainder of 2024, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dad226dd-1719-4eb7-8fe6-76b1ac908084" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">11.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2025, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3cd411f4-22c4-477a-9492-8b4ee608c14c" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">111.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2026, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6416701a-8d9d-4b2e-9e7e-f2961f9da014" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2027, and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_11077ad8-8190-4da9-bdeb-68d7e0ce38dc" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt-sec:numwordsen">zero</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> in 2028.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Credit Facility</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of June 30, 2024 and December 31, 2023, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dc986a16-eb63-4a7a-b8af-58ffeda5ad41" contextRef="C_8b3871f4-911f-4c70-a464-99f1e1215284" name="us-gaap:LettersOfCreditOutstandingAmount" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">13.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dbd7d6b8-f83d-46c0-b172-c9adc8b4fccd" contextRef="C_0b9f9325-4217-450d-9cac-d1594309dffe" name="us-gaap:LettersOfCreditOutstandingAmount" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">13.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of letters of credit were outstanding, respectively. Total unused credit availability, in consideration of borrowing limitations, under the Company&#8217;s senior secured term loan and senior secured revolver loan with sub-facilities for letters of credit, swing-line loans and senior secured multi-currency loans (the "Credit Facility") was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d200e6b1-641c-44c2-b15a-991b7089445d" contextRef="C_71fb9316-8c3d-423b-9ebb-a376ff80e2f2" name="us-gaap:DebtInstrumentUnusedBorrowingCapacityAmount" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">111.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d3e7b18e-8461-4bdf-8e72-8440da3220b8" contextRef="C_bfa36cb0-caf8-4ef9-a454-7c3ba4fef4da" name="us-gaap:DebtInstrumentUnusedBorrowingCapacityAmount" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">109.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million at June 30, 2024 and December 31, 2023, respectively. Revolving loans may be borrowed, repaid and reborrowed until December 17, 2026, at which time all outstanding balances of the Credit Facility must be repaid.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At the Company&#8217;s option, revolving loans and the term loans accrue interest at a per annum rate based on (a) either the highest of (i) the federal funds rate plus </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_48f05c7a-b137-4e17-8666-5d5ae2427490" contextRef="C_bfd1c8f4-4ec4-4cd3-9046-5b61623b7f3f" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">0.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%, or (ii) the prime lending rate of the Agent (as defined in the Credit Facility), (b) Daily Simple SOFR plus the Daily Simple SOFR Adjustment of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3d9afefb-6688-426a-911f-7d470761d490" contextRef="C_2b122b27-701e-4e52-b9b5-83ead83e986e" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">0.11</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> plus 1.0%, (c) 1.0%, plus a margin ranging from </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_30ee6644-6b08-4cef-8e84-74653369449f" contextRef="C_00d0f9ca-31ff-446b-ab53-b010c28709ff" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">1.75</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f25ed830-23aa-414e-adad-9975b0cffb1c" contextRef="C_d0fae3b1-654e-4bfc-b02b-060a8b2a903c" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">3.25</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% depending on the Company&#8217;s Consolidated Leverage Ratio, or (d) a one/three/six-month Term SOFR Rate (as defined in the Credit Facility) plus the Term SOFR Adjustment ranging from </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5a548c02-eae5-4874-ad57-f362c2572e0b" contextRef="C_87db28aa-f981-49b7-a48f-0347e97ecd19" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">0.11</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_901064bc-a218-4049-9280-e36764db2430" contextRef="C_efd85aef-608d-4037-831f-20a396347ca1" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">0.43</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% p</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">lus </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dfd6d0e6-b5ef-493f-b4fe-fe344add9a38" contextRef="C_3d6177c4-3607-4592-87d2-65dc15e8c82d" name="ceco:MaximumConsolidatedLeverageRatio" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">1.75</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% to 3</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6b7df536-326c-4b10-9fdd-c936304b5898" contextRef="C_0a5b1628-ce6e-4701-82d3-2d742f925ace" name="ceco:MaximumConsolidatedLeverageRatio" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">.25</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% depending on the Company&#8217;s Consolidated Leverage Ratio. Interest on swing line loans is the Base Rate.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Interest on Base Rate loans is payable quarterly in arrears on the last day of each calendar quarter and at maturity. Interest on Term SOFR rate loans is payable on the last date of each applicable Interest Period (as defined in the agreement), but in no event less than once every three months and at maturity. The weighted average stated interest rate on outstanding borrowings was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_65ec32a7-9995-42d9-ac82-75ba0c4e1fa8" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:DebtWeightedAverageInterestRate" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">7.88</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_46f43186-ab22-4eb9-aa02-daaa13f0a083" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:DebtWeightedAverageInterestRate" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">8.29</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at June 30, 2024 and December 31, 2023, respectively. The effective interest rate was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_da239a0f-2fc3-4527-ad80-504bc58181d3" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:DebtInstrumentInterestRateEffectivePercentage" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">8.12</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_598700a3-6cf7-4e0d-9a27-bdb66edbc0c0" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:DebtInstrumentInterestRateEffectivePercentage" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">7.70</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at June 30, 2024 and December 31, 2023, respectively.</span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10</span></p></div></div></ix:exclude><ix:exclude>
     <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Under the terms of the Credit Facility, the Company is required to maintain certain financial covenants, including the maintenance of a Consolidated Net Leverage Ratio (as defined in the Credit Facility). In the third quarter of 2023, the Company entered into an Elevated Ratio Period resulting in a maximum Consolidated Net Leverage Ratio of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a5728d28-fc5a-46ea-8a86-da4d45892bc0" contextRef="C_6493674e-373e-4ed5-a3d2-50234a50e8fd" name="ceco:MaximumConsolidatedLeverageRatio" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">4.00</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> through June 30, 2024, after which time it decreased to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_db0808c8-063e-484b-8cb8-217826949427" contextRef="C_a5d0dec5-c2b7-471c-8a22-95f23364f3a3" name="ceco:MaximumConsolidatedLeverageRatio" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">3.50</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> until the end of the term of the Credit Facility.<br/><br/>The Company has granted a security interest in substantially all of its assets to secure its obligations pursuant to the Credit Facility. The Company&#8217;s obligations under the Credit Facility are guaranteed by the Company&#8217;s domestic subsidiaries and such guaranty obligations are secured by a security interest on substantially all the assets of such subsidiaries, including certain real property. The Company&#8217;s obligations under the Credit Facility may also be guaranteed by the Company&#8217;s material foreign subsidiaries to the extent no adverse tax consequences would result to the Company.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of June 30, 2024 and December 31, 2023, the Company was in compliance with all related financial and other restrictive covenants under the Credit Facility.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Joint Venture Debt</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On March 7, 2022, the Company's Effox-Flextor-Mader, Inc. joint venture ("EFM JV"), for which the Company holds </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_508f7955-05a2-4f67-b1c0-16ea9003e059" contextRef="C_8c1e9305-5b24-4036-b6b5-fe398308abc9" name="us-gaap:MinorityInterestOwnershipPercentageByParent" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">63</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the equity, entered into a loan agreement secured by the assets of the EFM JV in the aggregate principal amount of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a536ca09-b797-45cb-9ffe-6075206c4056" contextRef="C_8c1e9305-5b24-4036-b6b5-fe398308abc9" name="us-gaap:SecuredDebt" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">11.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the acquisition of General Rubber, LLC ("GRC"). As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d65d45d8-ab68-4ec5-944c-8d4bbd5358a9" contextRef="C_489abd39-3499-4133-95b9-6d787ce5d31c" name="us-gaap:LettersOfCreditOutstandingAmount" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">8.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b8d632a0-1280-418b-aa93-f8b233fad556" contextRef="C_629d617c-951a-49ee-86ee-d0d25b5ec4d8" name="us-gaap:LettersOfCreditOutstandingAmount" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">8.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million was outstanding under the loan, respectively. Principal will be paid back to the lender monthly with the final installment due by February 27, 2027.  Interest is accrued at the per annum rate based on EFM JV's choice of the 1/3/6 month Term SOFR rate plus 3.25%, with a floor rate of 3.75%. Interest is paid monthly on the last day of each month. The interest rate at June 30, 2024 and December 31, 2023 was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_70177612-5585-4f81-bfe1-1a5448187235" contextRef="C_47c9b570-d993-43d4-b232-5e23b60d591f" name="us-gaap:DebtWeightedAverageInterestRate" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">8.52</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_82bdfac8-9dc9-463d-81c1-bb66ac5673ab" contextRef="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe" name="us-gaap:DebtWeightedAverageInterestRate" unitRef="U_pure" scale="-2" decimals="4" format="ixt:num-dot-decimal">8.70</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively. As of June 30, 2024 and December 31, 2023, the EFM JV was in compliance with all related financial and other restrictive covenants under this loan agreement. This loan balance does not impact the Company&#8217;s borrowing capacity or the financial covenants under the Credit Facility. As of June 30, 2024, there were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d9dd4474-f71d-4ba8-a62a-3095cfbd1feb" contextRef="C_47c9b570-d993-43d4-b232-5e23b60d591f" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">16.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in current assets, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_361f8964-b53f-4fec-83a1-e4580acb624d" contextRef="C_47c9b570-d993-43d4-b232-5e23b60d591f" name="us-gaap:AssetsNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">26.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in long-lived assets, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_22a664eb-cf22-4432-acdd-0399025fe7ce" contextRef="C_47c9b570-d993-43d4-b232-5e23b60d591f" name="us-gaap:Liabilities" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">30.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in total liabilities related to the EFM JV included in the Condensed Consolidated Balance Sheets. As of December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, there were $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9a067a7f-2494-4a53-9a65-cb76f92ea391" contextRef="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">14.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in current assets, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2edab1f6-750d-463b-88ea-3a350791b335" contextRef="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe" name="us-gaap:AssetsNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">26.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in long-lived assets, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0ff19b46-5812-411d-9471-1d49863186d8" contextRef="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe" name="us-gaap:Liabilities" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">12.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in total liabilities related to the EFM JV included in the Consolidated Balance Sheets. For the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023, the EFM JV accounted for </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3906045e-18ce-456f-a2d7-4af1197454be" contextRef="C_2bc42023-59af-4e84-857a-1aa2b7c1db33" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">13.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ff8ac098-40f0-4734-8c3f-af6d3b0db6de" contextRef="C_ed352a48-b629-4e4e-aefc-3e134a2ef268" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">9.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in revenue, respectively, included in the Company's results. For the six months ended June 30, 2024 and 2023, the EFM JV accounted for </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9d82bd31-41c8-4300-83b0-da6395cd98f8" contextRef="C_c1e40902-c5cd-4a79-97a8-8c2a20315c32" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">23.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9b4225cb-0dfb-4841-9213-bc9c4eba29ac" contextRef="C_ffdbfa94-6ea5-41d7-846c-6f63a4e98665" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">19.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in revenue, respectively, included in the Company's results.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Foreign Debt</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has a number of bank guarantee facilities and bilateral lines of credit in various foreign countries currently supported by cash, letters of credit or pledged assets and collateral under the Credit Facility. In March 2023, the Company amended the Credit Facility, allowing letters of credit and bank guarantee issuances of up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_60d7c239-9c23-437a-a7d9-555843bb9f66" contextRef="C_9cc1a325-f1c5-4984-96e2-38072f792420" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">80.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million from the bilateral lines of cred</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">it secured through pledged assets and collateral under the Credit Facility. As of June 30, 2024 and December 31, 2023, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5f031ee9-c9ad-4dbb-b77f-64b6b172a8b5" contextRef="C_d9b6b72a-350d-4fbe-ac0e-addf1b303b73" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">48.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1227e743-4cda-4962-9713-ef83cfe60135" contextRef="C_5f2fd9f9-203e-405b-be71-f65a6734b28e" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">45.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in bank guarantees were outstanding, respectively, inclusive of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2f453f11-efba-4730-b359-0f672be3bfc8" contextRef="C_589e9132-8dd4-4c77-be8b-d13a3828cf8f" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_029c9d3a-2e34-4850-bd55-d2ecddbff9ba" contextRef="C_5b7c892b-9787-4971-969c-53f51b5ba2b6" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in outstanding bank guarantees as of June 30, 2024 and December 31, 2023, respectively, under a Euro-denominated bank guarantee agreement held by a subsidiary of the Company located in the Netherlands and secured by local assets, as well as </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_137bfd57-e3eb-4587-9085-4fd9410aea0a" contextRef="C_a494d4bc-4b96-4d25-ace1-837f7c055e28" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ad7740e9-cf73-4aeb-833e-81b5aa9f572f" contextRef="C_f2255341-43e2-4fe8-abbb-3d8614762ce2" name="us-gaap:LineOfCredit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in outstanding bank guarantees as of  June 30, 2024 and December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, under Yuan-denominated bank guarantee agreements held by a subsidiary of the Company located in China and secured by local assets.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">    </span></p></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">11</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_8a1d29e2-8a5f-4ff2-a09a-0277f27c7152" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:EarningsPerShareTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">9.	Earnings per Share</span></p><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><ix:nonNumeric id="F_3be5a270-ce13-4184-9ccb-fcd6656b2e56" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The computational components of basic and diluted earnings per share for the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023 are as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Numerator </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(for basic and diluted earnings per share)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2c8a58f1-0480-4635-81f5-fdf8ae643f7d" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,485</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2bbac94c-cf56-416c-921b-a313b018923e" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,724</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3ec17416-474a-4343-9f95-5b31bce70f11" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,918</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_07c11ef1-df38-4579-8028-72ecf42758b0" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,619</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock equivalents arising from stock options and restricted stock awards</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0a030ab2-09ca-44e6-8138-78d649c68fe3" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,385</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f73ee239-b4ec-482d-afc2-6b4a4d287aa7" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">525</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5f1126c5-0a62-4f8b-9c29-a7c38c49a4d9" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,303</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7ecd31ef-9ded-4c74-9c32-3828937b45da" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">35,144</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The computational components of basic and diluted earnings per share for the six months ended June 30, 2024 and 2023 are as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Numerator </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(for basic and diluted earnings per share)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_795aa215-5a8e-421a-9fd0-150ad5c01fe1" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,993</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_64280dfd-197d-4f27-bec7-414a7f097607" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,701</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2a6fb545-4158-4592-b8e1-603c10d16c8c" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,882</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1d8b7f91-8d41-4271-8809-58d86ef789b0" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,531</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock equivalents arising from stock options and restricted stock awards</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fe4e433a-d700-4188-a2b3-1b25e23f3909" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,357</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c9af7604-d959-41a9-ba08-4a6a1415f5c9" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">641</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a9face87-8f19-473b-b8fe-a07da52fabbf" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">36,239</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ee73b366-ad02-4870-b734-8bc7b51f7ba2" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" scale="3" decimals="-3" format="ixt:num-dot-decimal">35,172</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Options and restricted stock units included in the computation of diluted earnings per share are calculated using the treasury stock method. For the three months ended June 30, 2024 and 2023, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7b2e0fc0-53d1-409e-bcda-ecf6ca7af08a" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-6" format="ixt-sec:numwordsen">zero</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_00a96fb5-2650-4bfb-b3ae-da47ce2647ec" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, and for the six months ended June 30, 2024 and 2023, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e56f5bde-2c81-4625-96a2-eda684a3c081" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_b9d8e94b-cae6-4e42-809b-5fc90577bd6b" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, of outstanding options and restricted stock units were excluded from the computation of diluted earnings per share due to their having an anti-dilutive effect.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Once a restricted stock unit vests, it is included in the computation of weighted average shares outstanding for purposes of basic and diluted earnings per share.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Common Stock Repurchase</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On May 10, 2022, the Company's Board of Directors authorized a share repurchase program under which the Company may purchase up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8a7d6615-9ac3-4908-a22a-faf528ed0fcc" contextRef="C_2589d1f0-4ead-437e-ae19-c64f5ab99b2a" name="us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">20.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of its outstanding shares of common stock through April 30, 2025. The authorization permits the Company to repurchase shares in the open market, through accelerated share repurchases, block trades, Rule 10b5-1 trading plans or through privately negotiated transactions in accordance with applicable laws, rules and regulations. During the three and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, the Company repurchased approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6e87d689-1b3a-4abc-8a63-5d1ac1c7c12d" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">86,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_86aeed37-4f06-4ca2-859c-64bd67fd07c4" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">230,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> shares under the program, respectively, for a cost of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_66f65ec1-82b3-468d-b2c1-eb3ed61277da" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_03e16bc0-efdc-427e-8749-f53df0c93ded" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">5.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. There were </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fc44ae69-44eb-4443-8a69-65976eb0a740" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="0" format="ixt-sec:numwordsen"><ix:nonFraction id="F_3e757b32-ce58-4afa-ab3a-eda56ee86021" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="0" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> shares repurchased under the program during the three or six months ended June 30, 2023.</span></p></ix:nonNumeric></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_04c18720-c6b7-45f2-acfd-6efadce0bad7" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10.	Share-Based Compensation</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company accounts for share-based compensation in accordance with Accounting Standards Codification (&#8220;ASC&#8221;) Topic 718, &#8220;Compensation &#8211; Stock Compensation,&#8221; which requires the Company to recognize compensation expense for share-based awards, measured at the fair value of the awards at the grant date. The Company recognized </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9cf2e3f6-531f-4487-9ca2-0999ecd255bd" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_51464da0-4976-40aa-82d1-49fb5ea56ae1" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of share-based compensation related expense during the three months ended June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_da39ea0c-0c86-4f67-89ab-4a69a6ddb710" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_255a3c67-ed17-40f3-82c2-4e9251443208" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of share-based compensation related expense during the six months ended June 30, 2024 and 2023, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company granted approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_acb62ab1-88a0-42a2-81e6-3ed1dbd055ca" contextRef="C_fac8fa4d-a6d7-4a4c-9647-4b06d933ac64" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">57,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_abd41657-a9fc-41e8-bd56-01e21dd4c8a1" contextRef="C_f10c1a04-d195-4d69-b158-bf0dfcb34eea" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">50,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> restricted stock units during the three months ended June 30, 2024 and 2023, respectively, and approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1bdf6df8-1fb6-44b4-a511-4e07b8a5f769" contextRef="C_c74d0fc9-94ee-4d75-b6d2-bff80b5c7d52" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">341,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ec782100-0c68-4aeb-b73d-a6dbd1419269" contextRef="C_2706c733-d34b-4031-8842-25e6af288a6a" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">390,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> restricted stock units during the six months ended June 30, 2024 and 2023, respectively. In addition, the Company granted approximately </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_00743bad-f086-48ab-96b4-54fb7ab052c1" contextRef="C_c74d0fc9-94ee-4d75-b6d2-bff80b5c7d52" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">25,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_110bde55-8b40-4173-8fa4-2bc3176d8acf" contextRef="C_2706c733-d34b-4031-8842-25e6af288a6a" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen">zero</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> stock options during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">12</span></p></div></div></ix:exclude><ix:exclude>
     <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively. </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d7cb726d-b8bb-4e79-9278-b6e22bef3999" contextRef="C_fac8fa4d-a6d7-4a4c-9647-4b06d933ac64" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_620fdf90-cff4-4ed8-a4c0-6e381927671e" contextRef="C_f10c1a04-d195-4d69-b158-bf0dfcb34eea" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt-sec:numwordsen">No</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> stock options were granted during the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">There were approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_70fd2b65-eb9f-430e-b922-408253551dd9" contextRef="C_7a64fcc3-da23-4ddd-a578-c91b7c0573b1" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">10,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_ca64f3ec-2674-4f6f-ab16-7e7ea2424582" contextRef="C_29308d50-6419-4d97-a577-ab1f6fccce01" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">25,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> options exercised during the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023, respectively, for which the Company received </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cc9835d6-ed15-4880-83c3-5e80b01a4abb" contextRef="C_7a64fcc3-da23-4ddd-a578-c91b7c0573b1" name="us-gaap:ProceedsFromStockPlans" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_64a37cba-7da9-4063-9314-30161a901bee" contextRef="C_29308d50-6419-4d97-a577-ab1f6fccce01" name="us-gaap:ProceedsFromStockPlans" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, respectively, from employees and directors. The intrinsic value of options exercised was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3dd08555-c9f2-4dc0-8372-dd7f63af2e53" contextRef="C_7a64fcc3-da23-4ddd-a578-c91b7c0573b1" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_94252335-4dbc-4dd3-a6b8-7216e48b5d4e" contextRef="C_29308d50-6419-4d97-a577-ab1f6fccce01" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.1</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for each of the three months ended June 30, 2024 and 2023. There were approximately </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_151dd467-f35a-4a80-b1a3-7e9ec1244a1a" contextRef="C_bafbfb8a-0c0c-4d5a-a954-15bda449f1b0" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">20,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_c8adf2f1-a39a-472b-a16f-eecfedb072ad" contextRef="C_6a455b2c-8ed7-4695-86d0-e23d85800e42" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">77,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> options exercised during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023, respectively, for which the Company received </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_7a5dab39-b977-435b-a1ee-dbb7294cac4a" contextRef="C_bafbfb8a-0c0c-4d5a-a954-15bda449f1b0" name="us-gaap:ProceedsFromStockPlans" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_01278055-48ac-4d39-b595-8a2674b8c0bb" contextRef="C_6a455b2c-8ed7-4695-86d0-e23d85800e42" name="us-gaap:ProceedsFromStockPlans" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, respectively, from employees and directors. The intrinsic value of options exercised was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_fea4aaa8-2118-4874-9dd4-2ac0fedb31cc" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_1c79617d-0136-4023-9c8b-46d2fd11727b" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for each of the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p></ix:nonNumeric></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_de7b0cf0-e0d8-4353-a0c3-020c7510ac95" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">11.	Pension and Employee Benefit Plans</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company sponsors a non-contributory defined benefit pension plan for certain union employees. The plan is funded in accordance with the funding requirements of the Employee Retirement Income Security Act of 1974.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company presents the components of net periodic benefit cost within &#8220;Other (expense) income, net&#8221; on the Condensed Consolidated Statements of Income.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_9c650499-b8d0-40a5-ba7c-3bd4905ce255" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfNetBenefitCostsTableTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Retirement plan expense is based on valuations performed by plan actuaries as of the beginning of each fiscal year. The components of the pension plan expense consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Interest cost</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5af53f73-e3aa-43fa-a7db-9cbcf6e0afd1" contextRef="C_3da024f4-e712-4f4d-8534-68f3deb4eeae" name="us-gaap:DefinedBenefitPlanInterestCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">304</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_590e8997-aac2-40bb-9056-4d549a60e1a1" contextRef="C_0c970210-db05-49b8-8ba3-cb7aa9c78a5f" name="us-gaap:DefinedBenefitPlanInterestCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">318</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_09f450ea-a22e-475b-9cc3-337a8ebb5b62" contextRef="C_0c7d46de-789a-4433-8fe7-cb32db8159ca" name="us-gaap:DefinedBenefitPlanInterestCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">608</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7f9327a2-6395-4a61-9c47-11de204727d4" contextRef="C_7e58e3b9-546f-4f3e-b0f6-c13ebf796a4d" name="us-gaap:DefinedBenefitPlanInterestCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">637</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Expected return on plan assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_005cb604-3a30-4317-ae28-648d9054bb8a" contextRef="C_3da024f4-e712-4f4d-8534-68f3deb4eeae" name="us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">304</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0b69a5d3-11b7-4243-8b1f-07c31e19b96a" contextRef="C_0c970210-db05-49b8-8ba3-cb7aa9c78a5f" name="us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">285</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8ecefb21-5599-4d95-b9a0-d7e17d621a06" contextRef="C_0c7d46de-789a-4433-8fe7-cb32db8159ca" name="us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">608</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c469b872-f080-410e-ae37-435153d31690" contextRef="C_7e58e3b9-546f-4f3e-b0f6-c13ebf796a4d" name="us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">571</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization of net actuarial loss</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b5583b93-10a1-454e-a7d8-968c98722d45" contextRef="C_3da024f4-e712-4f4d-8534-68f3deb4eeae" name="us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">57</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3c088e02-feac-4b56-a9c0-a5adbffc0e71" contextRef="C_0c970210-db05-49b8-8ba3-cb7aa9c78a5f" name="us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">74</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d461f6ae-0283-42b0-9916-56f53ca54d27" contextRef="C_0c7d46de-789a-4433-8fe7-cb32db8159ca" name="us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">113</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_94150ee4-4541-4e06-8990-14e684583d7b" contextRef="C_7e58e3b9-546f-4f3e-b0f6-c13ebf796a4d" name="us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">148</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net periodic benefit cost</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f0aa8907-bfe5-4660-b22e-5eafb4d2eba3" contextRef="C_88bff4ba-8317-4837-938d-f9fc37b50aca" name="us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">57</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e3cebd92-3cdb-4e01-b405-772a28e5f88f" contextRef="C_20500dc9-bbe0-4a66-9012-b50ee4c1d26c" name="us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">107</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_79c673a5-9597-4290-92a6-2f2edff06bd8" contextRef="C_1050d7c0-8e0d-4f6d-aa00-1d66b7e53e4a" name="us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">113</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_86f31461-72e9-4c9a-9f51-8883e97398b7" contextRef="C_2a293b5a-4932-40dc-a332-dfc222e16e6b" name="us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">214</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company made contributions to its defined benefit plan of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b1e91c1b-df25-42c6-a659-8025df2429e1" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:DefinedBenefitPlanContributionsByEmployer" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_bfea7b00-e635-41e7-8eb5-74e8b35f75c5" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:DefinedBenefitPlanContributionsByEmployer" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million during the three and six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_973f353a-a100-448e-8c69-804adac75a84" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:DefinedBenefitPlanContributionsByEmployer" unitRef="U_USD" scale="6" decimals="-6" format="ixt-sec:numwordsen"><ix:nonFraction id="F_fcc3e687-46f4-402d-8a78-141db0bb30f6" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:DefinedBenefitPlanContributionsByEmployer" unitRef="U_USD" scale="6" decimals="-6" format="ixt-sec:numwordsen">No</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> contributions were made to the plan during the three and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2023. For the remainder of 2024, the Company expects to make contributions of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ed565d3f-b634-42b6-9065-7e8d9d2dd85b" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:PensionContributions" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to fund the pension plan. The unfunded liability of the plan of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_392c84db-fde7-4028-83c8-3204b1722559" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:DefinedBenefitPensionPlanLiabilitiesNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c46ca4b8-d48d-4c85-935c-00b68108b355" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:DefinedBenefitPensionPlanLiabilitiesNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million as of June 30, 2024 and December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, is included in &#8220;Other liabilities&#8221; on the Condensed Consolidated Balance Sheets.</span></p></ix:nonNumeric></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_19b48b23-3567-4caa-8a86-e49f1695ea4f" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncomeTaxDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">12.	Income Taxes</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company files income tax returns in various federal, state and local jurisdictions. Tax years from</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_7514654a-fae4-46fc-94fb-f4d20247062b" contextRef="C_9467c45f-fc2f-4afe-868b-ad7b7b2ce2b0" name="us-gaap:OpenTaxYear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2018</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> forward remain open for examination by Federal authorities. Tax years from </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_8acdaa52-bed8-44e8-b1a8-20ab94f5c3df" contextRef="C_fcb369e4-0c48-476c-9cba-2ce136c26e27" name="us-gaap:OpenTaxYear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2017</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> forward remain open for all significant s</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">tate and foreign authorities.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company accounts for uncertain tax positions pursuant to ASC Topic 740, &#8220;Income Taxes.&#8221; As of June 30, 2024 and December 31, 2023, the liability for uncertain tax positions totaled approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a027feaa-0042-4a36-b4af-5a93a2b3f299" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_af722172-1091-4ada-b657-b133a413e769" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, which is included in &#8220;Other liabilities&#8221; on the Condensed Consolidated Balance Sheets. The Company recognizes accrued interest related to uncertain tax positions and penalties, if any, in income tax expense within the Condensed Consolidated Statements of Income.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain of the Company&#8217;s undistributed earnings of our foreign subsidiaries are not permanently reinvested. Since foreign earnings have already been subject to United States income tax in 2017 as a result of the 2017 Tax Cuts and Jobs Act, the Company intends to repatriate foreign-held cash as needed. The Company records deferred income tax attributable to foreign withholding taxes that would become payable should it decide to repatriate cash held in our foreign operations. As of June 30, 2024 and December 31, 2023, the Company recorded deferred income taxes of approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dae6e55b-ae10-457c-955a-30d610d3ac17" contextRef="C_34ed007c-7495-435d-b7f2-fc8513a05fac" name="us-gaap:DeferredIncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_579f4544-5914-48b9-aa1f-741f68c5a14e" contextRef="C_59fc15eb-e941-4554-83ca-b523abc2fd9b" name="us-gaap:DeferredIncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, on the undistributed earnings of its foreign subsidiaries.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Income tax expense was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b9807801-e703-4062-a329-6bcccc5895e6" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_73ba1ab4-d9ea-4a5d-9c31-a42108848c90" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the three months ended June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7f57d3cb-93e0-44c5-ab73-b0d846132d9f" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_68f59917-c803-4daf-a6b6-5b300ad31cb7" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the six months ended June 30, 2024 and 2023, respectively. The effective income tax rate for the three months ended June 30, 2024 was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1cf67307-88ed-42ad-afc8-028dfcd34a7f" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">7.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> compared with </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8e56c294-f65f-4f76-84fb-0d33c62d71f8" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">19.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for the three months ended June 30, 2023, and the effective income tax rate for the six months ended June 30, 2024 was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e757bb4f-94f9-4e4e-af3d-3b3bf73ba09f" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">13.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> compared with </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_be0a5354-8a11-4a76-be11-5f0dfaf83c70" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">13.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for the six months ended June 30, 2023. The effective income tax rates for the three and six months ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> differ </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">from the United States federal statutory rate. The Company's effective rate is affected by certain other permanent differences, including state income taxes, non-deductible incentive stock-based compensation and differences in tax rates among jurisdictions in which it</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">13</span></p></div></div></ix:exclude><ix:exclude>
     <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">operates. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Additionally, the Company received a tax indemnification payment of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0f06c93e-bcce-41e5-9617-b14efb22df92" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:LessorOperatingLeaseIndemnificationPaymentReceived" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, related to a prior year acquisition, in the second quarter of 2024.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Organization for Economic Co-operation and Development/G20 Inclusive Framework on Base Erosion and Profit Shifting published the Pillar Two model rules designed to address the tax challenges arising from the digitalization of the global economy which introduces a </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e0b50fa0-0001-4248-9c15-f4dd3f5dd7fb" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">15</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% global minimum corporate tax for companies with revenues above &#8364;</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c0773804-2302-49ce-8fab-fe3dcfcbb8b8" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:Revenues" unitRef="U_EUR" scale="6" decimals="-6" format="ixt:num-dot-decimal">750</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million calculated on a country-by-country basis. On February 1, 2023, the FASB indicated that it believes the minimum tax imposed under Pillar Two is an alternative minimum tax, and, accordingly, deferred tax assets and liabilities associated with the minimum tax would not be recognized or adjusted for the estimated future effects of the minimum tax but would be recognized in the period incurred. Aspects of Pillar Two legislation have been enacted in certain jurisdictions in which the Company operates effective for accounting periods commencing on or after January 1, 2024. However, based on the current revenue threshold, the Company is currently not subject to Pillar Two taxes.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p></ix:nonNumeric></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_b1e3f4ba-0027-4bcc-8578-b16f37bf6bd8" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:FinancialInstrumentsDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">13.	Financial Instruments</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company's financial instruments consist primarily of investments in cash and cash equivalents, receivables and certain other assets, notes payable, foreign debt and accounts payable, which approximate fair value at June 30, 2024 and December 31, 2023, due to their short-term nature or variable, market-driven interest rates.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The fair value of the debt issued under the Credit Facility and joint venture term loan was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fea0edfc-eb01-445b-b430-65cfdc629b33" contextRef="C_18cf0e95-6b2d-4751-a187-2d7efc7ed797" name="us-gaap:DebtInstrumentFairValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">131.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_e814b2ba-9a5b-4fbc-bb33-0bb69d56ffea" contextRef="C_f0805f92-71a0-4619-afeb-b2020cfd641d" name="us-gaap:DebtInstrumentFairValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">138.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million at </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023, respectively. The fair value was determined considering market conditions, the Company's credit worthiness and the current terms of our debt, which is considered Level 2 on the fair value hierarchy.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At June 30, 2024 and December 31, 2023, the Company had cash and cash equivalents of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_16116689-b06d-42b2-bbd0-fd57eac743c2" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">36.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"><ix:nonFraction id="F_9387423c-4e5d-4f7c-82b9-ef7d94739ba4" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">54.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, of which </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_385ba852-be54-458a-88a0-2f0cc0f90fde" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:CashHeldOutsideDomesticTerritory" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">28.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d70a07e1-bb86-4379-8d14-94b1206507a6" contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30" name="ceco:CashHeldOutsideDomesticTerritory" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">38.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, was held outside of the United States, principally in the Netherlands, India, United Kingdom, and China.</span></p></ix:nonNumeric></div>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_cb9c67e4-c08e-49dd-9df0-503654c310d2" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" escape="true"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">14.	Commitments and Contingencies</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Asbestos cases</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company's subsidiary, Met-Pro Technologies LLC (&#8220;Met-Pro&#8221;), beginning in 2002, has been named in asbestos-related lawsuits filed against a large number of industrial companies including, in particular, those in the pump and fluid handling industries. In management&#8217;s opinion, the complaints typically have been vague, general and speculative, alleging that Met-Pro, along with the numerous other defendants, sold unidentified asbestos-containing products and engaged in other related actions which caused injuries (including death) and loss to the plaintiffs. Counsel has advised that more recent cases typically allege more serious claims of mesothelioma. The Company&#8217;s insurers have hired attorneys who, together with the Company, are vigorously defending these cases. Many cases have been dismissed after the plaintiff fails to produce evidence of exposure to Met-Pro&#8217;s products. In those cases, where evidence has been produced, the Company&#8217;s experience has been that the exposure levels are low and the Company&#8217;s position has been that its products were not a cause of death, injury or loss. The Company has been dismissed from or settled a large number of these cases. Cumulative settlement payments from 2002 through June 30, 2024 for cases involving asbestos-related claims were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1bf06549-2397-4bcd-8a6c-d40e5d9ad9d9" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:LitigationSettlementAmountAwardedFromOtherParty" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">6.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million which together with all legal fees other than corporate counsel expenses have substantially been paid by the Company&#8217;s insurers. The average cost per settled claim, excluding legal fees, was approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3c07da0f-74ab-49c2-9e53-5d8b9de2314d" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="ceco:AverageCostPerSettledClaim" unitRef="U_USD" decimals="0" format="ixt:num-dot-decimal">33,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. As of June 30, 2024 and December 31, 2023, the amount recorded within "Accrued expenses" on the Condensed Consolidated Balance Sheets was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_755abb98-26dd-4e64-9ee9-7479837270b6" contextRef="C_47e61e04-853f-4bf4-8a81-336c8eae68b9" name="us-gaap:AccruedLiabilitiesCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bc2a60a9-c619-4279-9497-22644e8f089f" contextRef="C_349b57fb-22fc-4ee6-be90-faafd6702fe2" name="us-gaap:AccruedLiabilitiesCurrent" unitRef="U_USD" scale="6" decimals="-6" format="ixt-sec:numwordsen">zero</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, related to asbestos litigation.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Based upon the most recent information available to the Company regarding such claims, there were a total of 333 cases pending against the Company as of June 30, 2024 with Illinois, New York, Pennsylvania and West Virginia having the largest number of cases, as compared with </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fe3c184d-3496-4345-a634-a640a5c41965" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:LossContingencyPendingClaimsNumber" unitRef="U_Case" decimals="0" format="ixt:num-dot-decimal">313</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> cases that were pending as of December 31, 2023. During the six months ended June 30, 2024, 94 new cases were filed against the Company, and the Company was dismissed from 50 cases and settled 24 cases. Most of the pending cases have not advanced beyond the early stages of discovery, although a number of cases are on schedules leading to or scheduled for trial. The Company believes that its insurance coverage is adequate for the cases currently pending against the Company and for the foreseeable future, assuming a continuation of the current volume, nature of cases and settlement amounts. However, the Company has no control over the number and nature of cases that are filed against it, nor as to the financial health of its insurers or their position as to coverage. The Company also presently believes that none of the pending cases will have a material adverse impact upon the Company&#8217;s results of operations, liquidity or financial condition.</span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">14</span></p></div></div></ix:exclude><ix:exclude>
     <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Other</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company is also a party to routine contract and employment-related litigation matters, warranty claims and routine audits of state and local tax returns arising in the ordinary course of its business.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The final outcome and impact of open matters, and related claims and investigations that may be brought in the future, are subject to many variables, and cannot be predicted. The Company records accruals for estimated losses relating to claims and lawsuits when available information indicates that a loss is probable and the amount of the loss, or range of loss, can be reasonably estimated. The Company expenses legal costs as they are incurred.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company is</span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_30c85996-3243-4377-bef4-a73646370964" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:LossContingencyManagementsAssessmentAndProcess"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> not aware of any pending claims or assessments, other than as described above, which may have a material adverse impact on its liquidity, financial position, results of operations, or cash flows.</span></ix:nonNumeric></span></p></ix:nonNumeric></div>
  <div><ix:nonNumeric id="F_a125ddd7-5962-46d7-be8f-32c93ac6db77" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:BusinessCombinationDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">15.      Acquisitions</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Kemco Systems Co., LLC</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On August 23, 2023, the Company acquired </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_63afbf7c-ec85-452d-9b32-ec34b90ba304" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">100</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the equity interests of Kemco for $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c9941a6f-5dea-4ac0-bed1-6c5e177895d4" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:BusinessCombinationContingentConsiderationLiability" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">24.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, which was financed with a draw on the Company&#8217;s revolving credit facility. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the three months ended March 31, 2024, the Company received $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_120c5dfe-d91e-4086-9f2d-f534d57a2b6c" contextRef="C_8117e764-0bc9-442b-8801-54318fd523c2" name="ceco:CompanyReceivedWorkingCapital" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million from the former owners of Kemco as a working capital adjustment, reducing the purchase price to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d17e38b7-e65e-4732-b341-9544ba2ceb25" contextRef="C_8117e764-0bc9-442b-8801-54318fd523c2" name="ceco:PurchasePrice" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">23.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As additional consideration, the former owners of Kemco are entitled to earnout payments up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ed9ba7de-833a-4361-aab7-90f6a4e0fe3e" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="ceco:AdditionalConsideration" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million based upon specified financial results through August 31, 2026, of which $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2997aea5-ae68-4137-a2f1-0ae779b4a27e" contextRef="C_0c5f4bc0-2224-4e45-bf01-f8c41f9559f3" name="ceco:InstallmentsPaid" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million was paid during the second quarter of 2024. Based on projections at the acquisition date, the Company estimated the fair value of the earnout to be $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a1478baf-a284-49c5-b060-c11359729900" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="ceco:EarnOutFairValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, which was subsequently adjusted to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2ee67f91-f962-4207-a3ac-56d01295007b" contextRef="C_7b0ccbd8-cde1-4fa0-92b8-fbefef7f7aea" name="ceco:EarnOutFairValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in the first quarter of 2024. This fair value measurement is based on inputs not observable in the market, which is considered Level 3 on the fair value hierarchy. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024, the earnout liability recorded in &#8220;Accrued expenses&#8221; on the Condensed Consolidated Balance Sheets is </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8859502e-c1b5-45d9-87b2-d9e610e99a60" contextRef="C_3bd221d6-a123-44dd-acb2-9e1b69f0c61a" name="us-gaap:AccountsPayableAndOtherAccruedLiabilities" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. Kemco designs and manufactures energy and water conservation systems and equipment for applications regarding wastewater reuse and recycle, heat recovery, water heating, and vapor energy. This acquisition advances the Company's position within the North American water and wastewater treatment market within the Engineered Systems segment. </span><span><ix:nonNumeric id="F_d0712e12-5d99-41b8-9241-41c1c952f266" contextRef="C_8117e764-0bc9-442b-8801-54318fd523c2" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" escape="true" continuedAt="F_d0712e12-5d99-41b8-9241-41c1c952f266_1"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span></ix:nonNumeric></span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:continuation id="F_d0712e12-5d99-41b8-9241-41c1c952f266_1">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"/>
        <td style="width:1.94%;"/>
        <td style="width:1%;"/>
        <td style="width:15.823%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fc7316aa-e1ae-43ba-bc4f-fb3fe1a679ab" contextRef="C_0c5f4bc0-2224-4e45-bf01-f8c41f9559f3" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,328</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bc8acfd0-bdf4-424a-8581-46369c3a0864" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,902</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e4840cd0-90a3-461d-ae4b-7088caa2f414" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">341</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Right-of-use assets from operating leases</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_646c7891-3be6-44f4-9595-99c91333a441" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,602</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_25ed1c44-0cd2-4267-b458-8b709775e592" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,610</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_04db3118-185c-4a1f-8a97-8c8b86f0a390" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,115</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_15a66c8d-d4f9-467c-88a1-92eaf49428f0" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:OtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_80afcf72-e21e-40bc-91a5-28ad5545a634" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">33,586</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8bf71ff5-bc0e-4554-8d7e-ab83c7803c82" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,853</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3cb6228e-1c89-44bf-b150-5787c731496f" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:OtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">404</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f4055d90-7303-4571-b092-f125eee89544" contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26,329</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:continuation></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company acquired technology, customer lists and tradename intangible assets valued at $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9353d2bb-f43f-48d8-adbe-c24b02514755" contextRef="C_6d00beba-a242-44bc-956e-811c4160406d" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_124fd257-d374-4262-8f06-61f4e2b7ea78" contextRef="C_04e1df3f-6f01-4fd1-8499-60824c9e78f9" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">8.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a829a37d-1bf1-4351-b4fa-ee8e63a49402" contextRef="C_efd90330-7aea-48a1-90ef-4f616e315186" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. These assets were determined to have useful lives of </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_36817cad-28bc-454e-bf1b-c788c73ea439" contextRef="C_6d00beba-a242-44bc-956e-811c4160406d" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_e1f16e25-ccaa-44ed-bad6-c2e6343e48e4" contextRef="C_04e1df3f-6f01-4fd1-8499-60824c9e78f9" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_ebdc2bbd-4795-4e0d-8044-43e28f8e09e1" contextRef="C_efd90330-7aea-48a1-90ef-4f616e315186" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> years, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Transcend Solutions</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On March 31, 2023, the Company acquired </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_10108b01-b424-485c-9a57-9c1499ed5104" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">100</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the equity interests of Transcend Solutions, LLC ("Transcend") for</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d15e6c75-74e4-4fe1-8323-efe59ea5b9d8" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">22.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, including $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c406b64d-f30b-4361-ad77-bbeb10f77c8c" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationContingentConsiderationLiability" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">20.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, which was financed with a draw on the Company&#8217;s revolving credit facility, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4b3971c9-9648-447d-8973-db0461a7bc9e" contextRef="C_36a6fe56-8876-42bb-b152-b02a8bbe12b2" name="us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of deferred cash consideration, consisting of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c469833e-d42a-4be8-8c66-b1de5b4717e2" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="ceco:HoldbackPayble" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of holdback paid within one year and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_35aebe89-5345-4cac-990c-3041104a155e" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:NotesPayable" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of notes payable due in equal installments over two years, of which $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8c146630-5ae1-48f9-87c4-1bde82a03a1d" contextRef="C_c9b6c865-2af7-4b96-954f-843e672b4973" name="ceco:InstallmentsPaid" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million was paid during the first quarter of 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Transcend is a process filtration solution design and manufacturing company with applications in hydrocarbon and chemical processing. This acquisition improves the Company's short-cycle and long-cycle mix and expands the Company's reach into midstream oil and gas, liquified natural gas, hydrocarbon processing, and chemical processing applications within the Engineered Systems segment. </span><span><ix:nonNumeric id="F_af94e582-7519-449c-b9ed-e75d095141f5" contextRef="C_b45e663b-5908-4c71-8f23-b4f823f678b5" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" escape="true" continuedAt="F_af94e582-7519-449c-b9ed-e75d095141f5_1"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span></ix:nonNumeric></span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">15</span></p></div></div></ix:exclude><ix:exclude>
     <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude><div style="font-size:10pt;font-family:Times New Roman;"><ix:continuation id="F_af94e582-7519-449c-b9ed-e75d095141f5_1">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"/>
        <td style="width:1.94%;"/>
        <td style="width:1%;"/>
        <td style="width:15.823%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including cash of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_78835a2c-56c9-4774-bd13-bf868b4261fe" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">52</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;and accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4c625488-38d1-4265-ae39-e1fb513d69d7" contextRef="C_fbbc29e7-481e-4873-b4c6-62374fa0621e" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,493</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3b20613a-16b5-46cb-850f-f1b21bec396e" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,614</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d25aa6b9-e03f-4973-ace2-8364c8b20f66" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,153</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d0332b6f-706a-482e-be01-15921bc1de40" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,930</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_36779e26-058e-4207-b902-540c20dea57f" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,839</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_84ef0f5d-d45e-404b-9341-6938aae5f275" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:OtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">231</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_78a54d6c-9ecc-491c-833c-7bf6c8fd2e47" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,767</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_df17fe7d-612d-4789-942e-b412afaaa792" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,203</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_56dafc84-7f43-4f25-a776-d6b25b58fe2a" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">168</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ecd35aaa-0534-4f46-805a-33601560f67e" contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">22,396</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:continuation></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company acquired technology, customer lists and tradename intangible assets valued at $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_abb553f3-e7df-4853-9600-35ee019585df" contextRef="C_b4a042be-ed48-4247-a787-2fe0805c0213" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_eb183949-0e3e-4d8a-9eba-12646fb0a1ec" contextRef="C_9304e9b2-9d3f-4661-b790-466476e30580" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">7.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2db5a05c-35d8-4f7d-b210-5856cc49d6e3" contextRef="C_7a1d8950-613b-4ba6-948e-7235f2ca2bf7" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. These assets were determined to have useful lives of </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_73095e7d-6641-435d-8bb4-42a30f2408c9" contextRef="C_b4a042be-ed48-4247-a787-2fe0805c0213" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_ccc909be-c7ad-476c-8d81-532bd49c6fe0" contextRef="C_9304e9b2-9d3f-4661-b790-466476e30580" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10 </span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">and </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_8388f421-f6a3-4e87-8658-397d8bfbb580" contextRef="C_7a1d8950-613b-4ba6-948e-7235f2ca2bf7" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10 </span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">years, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Malvar Engineering Limited</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On January 10, 2023, the Company acquired </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_660783b2-77d2-44cb-8e08-4da955f90ce7" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">100</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the equity interests of Malvar Engineering Limited, including its subsidiaries Arkanum Management Limited and Wakefield Acoustics Limited (collectively, "Wakefield"), for</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b771fa29-9bf7-4315-bbfe-4901429769f2" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessCombinationContingentConsiderationLiability" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">4.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, which was financed with a draw on the Company&#8217;s revolving credit facility, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_31179744-4e04-4829-bb63-c1bd990c0cfa" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of deferred cash consideration</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. As additional consideration, the former owners are entitled to earn-out payments based upon specified financial results through July 31, 2023. Based on projections at the acquisition date, the Company estimated the fair value of the earn-out to be $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4818fff3-72e1-4b24-a75c-5d0402a8b9f1" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="ceco:EarnOutFairValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. A payment of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5e875926-4e42-4dc2-b2ef-a36e49f52fbd" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:AccountsPayableAndOtherAccruedLiabilities" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, representing the fully earned amount, was made in the fourth quarter of 2023. Wakefield is a </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">producer of industrial engineered noise control solutions, including custom acoustical gen-set packages, ambient air baffles, acoustical louvres, and skid enclosures, primarily serving server farms for data centers, standby and emergency power generation, oil and gas, petrochemical, commercial construction, infrastructure, and general manufacturing industries. This acquisition advances the Company's position within the industrial silencing and noise attenuation market by adding a range of solutions and access to new geographic markets within the Engineered Systems segment. </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_c8e7c8db-3a15-4b46-aa9c-51dc87b6e666" contextRef="C_7923e4da-ce3a-46c9-be51-caf27afc8ef9" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" escape="true" continuedAt="F_c8e7c8db-3a15-4b46-aa9c-51dc87b6e666_1"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span></ix:nonNumeric></span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:continuation id="F_c8e7c8db-3a15-4b46-aa9c-51dc87b6e666_1">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"/>
        <td style="width:1.94%;"/>
        <td style="width:1%;"/>
        <td style="width:15.823%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e3b9ebd1-efda-4476-a0f7-5bb43006b3a6" contextRef="C_55bf135b-9f96-4b77-9981-d927010c0d49" name="us-gaap:IncreaseDecreaseInAccountsReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,467</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_997a7b96-c148-44b1-959f-b6efda7b3e88" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,240</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b981f80d-58d8-40fe-8e87-0cac9e11e445" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">635</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ca20c0f8-c2c7-4bd2-8d0b-dd6ce22f706d" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,778</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e9153a40-2baf-4322-8fbc-291c52d2b2be" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,296</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b9e137a7-2649-4677-81b3-498c7dcfc708" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,949</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_8c4364ee-efc5-42a3-b000-30647058ef97" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,860</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred income tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f8570093-dc60-458a-9bf0-0374695d7cda" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">961</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_263311ef-3d81-40c0-9e3c-0ebd1e74f667" contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,128</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:continuation></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company acquired customer lists and tradename intangible assets valued at $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f560fdb2-f2a4-4ffd-a43f-a91656b911fa" contextRef="C_6f9a237d-a361-46b0-8346-bf1f6627c4b9" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7459ca28-1546-483d-aeb0-d80c698e6e4c" contextRef="C_dbb189c9-894e-4b47-afa3-89cb992725cf" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. These assets were determined to have useful lives of </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_459d25c7-2205-46b6-a636-8e5b7678455c" contextRef="C_cf575e81-89c7-41df-994e-ef0940b46d64" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10 years</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has finalized the valuation of assets acquired and liabilities assumed related to the acquisition of Wakefield and Transcend. The purchase accounting related to the Kemco acquisition is subject to final adjustment, primarily for the valuation of intangible assets pending final valuation results for such assets and tax balances for the further assessment of the acquiree&#8217;s tax positions. These preliminary estimates and assumptions could change significantly during the purchase price measurement period as the Company finalizes the valuation of assets acquired and liabilities assumed. These changes could result in material variances in the Company's future financial results, including variances in the estimated purchase price, fair values recorded and expenses associated with these items.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill recognized represents value the Company expects to be created by combining the various operations of the acquired businesses with the Company&#8217;s operations, including the expansion into markets within existing business segments, access to new customers and potential cost savings and synergies. Goodwill related to this acquisition is not deductible for tax purposes.<br/><br/>Acquisition and integration expenses on the Condensed Consolidated Statements of Income are related to acquisition activities, which include retention, legal, accounting, banking, and other expenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_73d6e61f-938c-4bdc-a2ef-ec51f514e7a9" contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd" name="us-gaap:BusinessAcquisitionProFormaInformationTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following unaudited pro forma financial information represents the Company&#8217;s results of operations as if these acquisitions had occurred at the beginning of the fiscal year prior to the acquisition:</span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">16</span></p></div></div></ix:exclude><ix:exclude>
       <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:51.31%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1%;"/>
        <td style="width:11.582%;"/>
        <td style="width:1%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1%;"/>
        <td style="width:6.281000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1%;"/>
        <td style="width:11.582%;"/>
        <td style="width:1%;"/>
        <td style="width:1.24%;"/>
        <td style="width:1%;"/>
        <td style="width:6.281000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands, except per share data)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c000863a-5fef-44ac-bd9d-32c8ebbd1128" contextRef="C_3a0b3e75-3056-44a8-8753-0879f494583f" name="us-gaap:GainLossOnSalesOfLoansNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">137,522</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f6fc1244-5735-439e-a086-5a16aad4fa4a" contextRef="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93" name="us-gaap:GainLossOnSalesOfLoansNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">135,260</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ee92cfcf-5a1e-460d-a12d-7e4c5b90413d" contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd" name="us-gaap:GainLossOnSalesOfLoansNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">263,854</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_71a6eb7e-e19a-424e-adf2-85ec1c90d9b3" contextRef="C_c42650fa-1a6c-4d61-b129-00391b2c2104" name="us-gaap:GainLossOnSalesOfLoansNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">257,455</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c6aa5725-52d2-401e-95ab-54218fc9d988" contextRef="C_3a0b3e75-3056-44a8-8753-0879f494583f" name="us-gaap:InterestIncomeExpenseNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,485</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1f0cd971-a587-4431-9b6b-a63f374ca4ea" contextRef="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93" name="us-gaap:InterestIncomeExpenseNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,292</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_681f61e1-96a8-40d5-b05f-d7ee41bd50d7" contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd" name="us-gaap:InterestIncomeExpenseNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,993</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0cc01dac-6daf-4202-b919-a005a69eba87" contextRef="C_c42650fa-1a6c-4d61-b129-00391b2c2104" name="us-gaap:InterestIncomeExpenseNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,019</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Earnings per share:</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_918f3145-2bb2-4b27-ba9a-b5e3545adee4" contextRef="C_3a0b3e75-3056-44a8-8753-0879f494583f" name="us-gaap:IncomeLossFromContinuingOperationsPerBasicShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.13</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e0c0641d-97a1-4a11-816c-ab8746669635" contextRef="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93" name="us-gaap:IncomeLossFromContinuingOperationsPerBasicShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.12</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ce1702f4-3142-4bfa-9b63-62baf160f7f6" contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd" name="us-gaap:IncomeLossFromContinuingOperationsPerBasicShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.17</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2b14fceb-8851-4acf-82cd-0e31e4adc98d" contextRef="C_c42650fa-1a6c-4d61-b129-00391b2c2104" name="us-gaap:IncomeLossFromContinuingOperationsPerBasicShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.20</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6bd6c266-0557-49bc-914e-77ef878fc3fc" contextRef="C_3a0b3e75-3056-44a8-8753-0879f494583f" name="us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.12</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6ce8a3a3-0bae-4ade-8b14-c586af3b7613" contextRef="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93" name="us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.12</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_77d4f0f7-58a8-40ca-88df-2711e35258e4" contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd" name="us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.17</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c051e472-9d76-4a05-a478-e3aa5324a6a2" contextRef="C_c42650fa-1a6c-4d61-b129-00391b2c2104" name="us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare" unitRef="U_UnitedStatesOfAmericaDollarsShare" scale="0" decimals="2" format="ixt:num-dot-decimal">0.20</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The pro forma results have been prepared for informational purposes only and include adjustments to amortize acquired intangible assets with finite life, reflect additional interest expense on debt used to fund the acquisition, and to record the income tax consequences of the pro forma adjustments. These pro forma results do not purport to be indicative of the results of operations that would have occurred had the purchase been made as of the beginning of the periods presented or of the results of operations that may occur in the future.</span></p></ix:nonNumeric></div>
  <div style="font-size:12pt;font-family:Times New Roman;"><ix:nonNumeric id="F_ee54dd84-c414-4c3d-923c-9348bc54e247" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:SegmentReportingDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">16.	Business Segment Information</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s operations are organized and reviewed by management along with its solutions or end markets that the segment serves and presented in two reportable segments. The results of the segments are reviewed through the &#8220;Income from operations&#8221; line on the Condensed Consolidated Statements of Income</span><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s reportable segments are organized as groups of similar products and services, as described as follows:</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Engineered Systems segment:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> The Engineered Systems segment serves the power generation, hydrocarbon processing, water/wastewater treatment, oily water separation and treatment, marine and naval vessels, and midstream oil and gas sectors. The Company seeks to address the global demand for environmental and equipment protection solutions with its highly engineered platforms including emissions management, fluid bed cyclones, thermal acoustics, separation and filtration, and dampers and expansion joints.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Industrial Process Solutions segment:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> The Industrial Process Solutions segment serves the broad industrial sector with solutions for air pollution and contamination control, fluid handling, and process filtration in applications such as aluminum beverage can production, automobile production, food and beverage processing, semiconductor fabrication, electronics production, steel and aluminum mill processing, wood manufacturing, desalination, and aquaculture markets. The Company assists customers in maintaining clean and safe operations for employees, reducing energy consumption, minimizing waste for customers, and meeting regulatory standards for toxic emissions, fumes, volatile organic compounds and odor elimination through its platforms including duct fabrication and installation, industrial air, and fluid handling.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_bf288a9a-512f-4a7d-8ce0-2b14beb8697d" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" escape="true" continuedAt="F_bf288a9a-512f-4a7d-8ce0-2b14beb8697d_1"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The financial segment information is as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales (less intra-, inter-segment sales)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_46b8c289-28c3-4c50-97ef-27e33f092b1e" contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">97,392</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_27c9a214-f0b7-4fc9-aa42-ba641d7fc908" contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">87,522</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1f2e34cc-efb6-444a-a184-367fd6e25194" contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">186,741</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f43e6eba-b717-46c0-a29c-f49324f7e1cf" contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">161,977</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_edccd506-e4e0-4dbb-8163-4715e46185f4" contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">40,130</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0466a81f-f9ba-432c-b336-920cf87dc28b" contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">41,659</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3b50cc17-5627-48bc-8928-fea1fcc1edbe" contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">77,113</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c80076dd-83c7-4fb9-ba50-71549ea4e63f" contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">79,767</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_544c6247-78b0-46dd-a47b-ba20b4b21fa5" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">137,522</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9dcaa3ad-185f-42f9-9869-60253a9be151" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">129,181</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_032702f7-48b7-47ec-93f6-8c459e1cb577" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">263,854</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e43be11c-6b6e-4930-87ae-aab2162c5cb7" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">241,744</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Income from operations</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4a46efca-9700-4b8f-9e2e-957907c11887" contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,330</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_57b0eeab-a831-4c33-b3b1-5f74491095a4" contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,089</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9e2369a7-e477-468a-a142-f10be2faaa83" contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">35,607</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_748135cd-9d9a-4ab8-a789-c2fd834eb184" contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,894</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_10c4a87d-f7e6-4fbc-a889-e964b9f3b760" contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,669</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d886f5f8-b244-4cdd-b20f-39fcbfbb09cf" contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,586</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9641eb9f-7098-4345-bda7-0e272dc7bc5c" contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,769</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4e81251a-8168-4e85-8899-3a531dac27c5" contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,131</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;">(1)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b9e42d51-618f-4c90-af04-7ca329cb7e37" contextRef="C_30f7d23d-19da-4369-8fc4-1d3abf482698" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">15,742</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0dcfd763-2b6c-4c77-9593-b08dcb03388a" contextRef="C_b786997d-9425-44b4-b5b5-81b33cb5743d" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">10,072</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_eea7a299-fd04-4634-b913-ff7e3c99ad2a" contextRef="C_20af154e-2934-460e-b32a-3e33fd38f050" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">31,433</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fc374583-e93b-4abb-8327-56fdf907a643" contextRef="C_52a7de7a-6f99-4e7a-8171-3348d1ebab1e" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">19,961</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total income from operations</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3f3ea004-4175-4bb7-8413-42dadb439a05" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,257</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_493890f6-716a-440a-9089-199104abb4be" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,603</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_072ca6ed-8f70-493a-9643-7913d8c9d1bd" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,943</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c1ed3a33-9389-4ed8-967f-f3068fde7335" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,064</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><div class="item-list-element-wrapper" style="display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:6pt;min-width:6.667%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:6.667%;display:inline-flex;justify-content:flex-start;">(1)</span><div style="width:100%;display:inline;"><span><ix:continuation id="F_bf288a9a-512f-4a7d-8ce0-2b14beb8697d_1"><ix:footnote id="FNT_560c2fe7-fed9-44d0-b8d0-bc291229dc8b" xml:lang="en-US"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Includes corporate compensation, professional services, information technology, and other general and administrative corporate expenses.</span></ix:footnote><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"> </span></ix:continuation></span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"> </span></div></div><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;">&#160;</p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">17</span></p></div></div></ix:exclude><ix:exclude>
     <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_25436a8a-67a8-4144-97bc-a5d328e5afc3" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock" escape="true">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Property and equipment additions</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c93709f8-ba74-4fb2-8267-5f3245ba5889" contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">890</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fffb597b-144b-4d8c-bc1f-77ccf85fabf5" contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">444</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e11e5fa6-da59-42af-976d-4331b1419304" contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,027</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1f77f54e-976b-4774-9e0a-512f8a4e29a5" contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">688</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dcd18412-5f28-48a3-be33-28f6293c0e61" contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">429</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ff0017da-ab69-461c-9464-fb5f48b92693" contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">312</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4be3d5f4-4ad9-487e-be3d-481aacf8cc52" contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,035</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6fc21c62-e8b3-43fc-a87e-a6a01c000b61" contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,711</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4a66f990-1789-49f2-87a1-4d5f31add399" contextRef="C_30f7d23d-19da-4369-8fc4-1d3abf482698" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,804</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e58b0a66-cfce-42ca-b693-d74ef61709f3" contextRef="C_b786997d-9425-44b4-b5b5-81b33cb5743d" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,406</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_cd43c30a-1e20-4793-8440-68d2173e38a0" contextRef="C_20af154e-2934-460e-b32a-3e33fd38f050" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,171</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6404d9b3-a67a-4104-96e4-e06aed03aa93" contextRef="C_52a7de7a-6f99-4e7a-8171-3348d1ebab1e" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,520</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total property and equipment additions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_47b476a1-2669-4fb3-8a5b-30d067181d96" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,123</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e941bfea-58c8-416c-8bbb-f380f3cdae21" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,162</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bfc67288-5280-467f-b32d-4c92bf4e95e8" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,233</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9bde2157-730c-48a3-9246-6c7651c0c912" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:SegmentExpenditureAdditionToLongLivedAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,919</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.12%;"/>
        <td style="width:1%;"/>
        <td style="width:10.280000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Depreciation and amortization</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f4c67296-1c1a-4115-aa24-ead32d7774ef" contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,814</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b332c536-34ad-4622-9afe-124df5e015ad" contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,274</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5ec81132-4391-4cee-8cdb-dd35d11332ec" contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,599</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_41073691-09f7-47a3-8b7c-b37b5599d669" contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,486</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d026459f-df38-4440-b663-80055bc91b00" contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,131</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_132425b5-77a6-4c5a-b8a6-2f1b481e8750" contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">949</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_55c06434-0b68-42c5-ad59-8dba545eb034" contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,250</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_4286a1c7-fa74-4392-8ce1-f1c6edff8ba0" contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,107</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_eb616a26-14a6-49af-a9b3-592e08256cb4" contextRef="C_30f7d23d-19da-4369-8fc4-1d3abf482698" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">516</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a4845ace-bcdf-4483-94a7-3c4210d6c23b" contextRef="C_b786997d-9425-44b4-b5b5-81b33cb5743d" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">542</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c67d02f8-6a54-4f55-9945-a6693fe0287a" contextRef="C_20af154e-2934-460e-b32a-3e33fd38f050" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,124</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_bd354b35-5188-4677-a95e-7cdeb7baf643" contextRef="C_52a7de7a-6f99-4e7a-8171-3348d1ebab1e" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,057</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total depreciation and amortization</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a0c16725-d12f-4c43-9645-d5aa0a209de3" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,461</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9b6933cc-ed89-40d6-a27e-54a50565573c" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,765</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_15fbfa50-46bb-425f-803d-f65851dd86b2" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,973</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_83f6b051-ac1b-4ec2-b1c1-5c435a84b0c8" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:DepreciationDepletionAndAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,650</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Identifiable assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1f7801d2-e399-4b19-a266-c05707053529" contextRef="C_4903b239-8211-4916-a44e-128a6e7b7e35" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">427,732</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e53a3b7b-bd29-4488-b78b-723a74e6e6aa" contextRef="C_6803e932-33b6-4356-8032-f6f6e04a2953" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">432,098</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_61582496-5441-453b-b86d-24aa0dd7d33f" contextRef="C_e1daf2f3-bc9c-41a8-b5d2-bff35648e89d" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">144,132</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3c8a0fc5-91c5-48df-959d-e6902c5ba536" contextRef="C_45d06743-1d1c-4cf5-8ea9-acbfb7ee8b51" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">147,740</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;">(2)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1655f03a-c03f-4bff-88f3-60843529d22e" contextRef="C_9751a76b-96c9-440c-b366-05695a199a81" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26,269</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_08d5f4e7-da5d-46cf-b144-bf349eb2e1d7" contextRef="C_4b4b1b7a-f250-4c11-96d6-cbd07f793bfe" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,453</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total identifiable assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_61e6de19-987e-4e0b-9037-95627cfa7425" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">598,133</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b6aa80f1-9fbf-48f8-aea3-15921ebc8abe" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">600,291</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><div class="item-list-element-wrapper" style="display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:6pt;min-width:6.667%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:6.667%;display:inline-flex;justify-content:flex-start;">(2)</span><div style="width:100%;display:inline;"><ix:footnote id="FNT_e8fef2e5-082a-4066-988d-b7a60c515ef6" xml:lang="en-US"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Corporate and Other assets consist primarily of cash and income tax related assets.</span></ix:footnote></div></div></ix:nonNumeric></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;">&#160;</p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_d619ec1d-4865-434f-a074-51263e5a678d" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:ScheduleOfGoodwillTextBlock" escape="true" continuedAt="F_d619ec1d-4865-434f-a074-51263e5a678d_1">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.54%;"/>
        <td style="width:1%;"/>
        <td style="width:14.777000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9aba6e12-095f-4dbf-b0ab-7eedb576cdf5" contextRef="C_4903b239-8211-4916-a44e-128a6e7b7e35" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">142,058</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_818eeaa1-6de9-43be-9462-b7f44f95288f" contextRef="C_6803e932-33b6-4356-8032-f6f6e04a2953" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">142,229</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0c278d93-1029-46c2-a4d0-e10e231cfcbc" contextRef="C_e1daf2f3-bc9c-41a8-b5d2-bff35648e89d" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">69,086</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_78ce1e5e-150e-403d-90c5-803409ff14af" contextRef="C_45d06743-1d1c-4cf5-8ea9-acbfb7ee8b51" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">69,097</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_171d8eb9-fabc-4444-bb08-045999cabb34" contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,144</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_97e46a5c-cb33-4f7a-aedb-6d0911bb58d6" contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">211,326</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div><p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span><ix:continuation id="F_d619ec1d-4865-434f-a074-51263e5a678d_1"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"><br/></span></ix:continuation></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Intra-segment and Inter-segment Revenues</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_c6c7a2fa-c753-45ee-aa02-756f66fc63b3" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="ceco:IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock" escape="true"><p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has multiple divisions that sell to each other within segments (intra-segment sales) and between segments (inter-segment sales), as follows:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.3%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_853f4c6e-669b-43e7-8fce-0c97fba87c6a" contextRef="C_690c7f51-86b8-4bac-8087-2a49f4809817" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">102,141</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f6b0abb0-42e4-40ce-b04c-f802618b513f" contextRef="C_d29c1624-8222-4062-9468-1ba65fcdfd94" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,553</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a7629382-fed2-4ddd-bc04-6df6795ed2a1" contextRef="C_0bf01a3b-ab3c-4030-9a92-b3468b93ed4e" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">196</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f9064bb7-a5c5-444d-b0fa-92b5435b05ba" contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">97,392</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fcecac01-e3a9-4431-adec-86ef1cb91603" contextRef="C_7af06f0a-64a7-4b61-9c12-491eb4dd6180" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">44,673</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5e1a5689-ef7b-41bb-91ea-f6b36b32b5e0" contextRef="C_bb1d996e-63d5-4441-8a7d-44f320c7e49b" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,440</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fdf66766-5bf9-47ae-b2f4-092d7c9fe0a8" contextRef="C_a29fb287-14dc-43e7-960f-3c344ea1a8dd" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">103</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d742bdc7-acb9-44d8-bd6d-0fba5c0d9108" contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">40,130</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a5831a8d-7878-4973-aaa4-7ad7ce343206" contextRef="C_431f62b4-8e96-4f2e-bb8b-938899c3d8c7" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">146,814</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_708c158c-597d-49d1-85b0-cc47e36df6b5" contextRef="C_30e73bb7-1ee9-4f4e-9bf1-ab554a2473da" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">8,993</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_613d07a4-0266-43c5-8139-4b12db00b343" contextRef="C_0bf01a3b-ab3c-4030-9a92-b3468b93ed4e" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">196</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b0888e7c-6b1d-4729-8158-1169921339bd" contextRef="C_a29fb287-14dc-43e7-960f-3c344ea1a8dd" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">103</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_88cbfe9e-9aba-49ed-ba99-e6fe33c79e5c" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">137,522</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.357%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.443%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.523%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.523%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.523%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.523%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d1d9a477-4abf-4d80-9135-ce002a488fab" contextRef="C_87c1a47a-5087-4a49-bfff-6c535924f465" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">95,880</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a5978c25-7fc4-4230-9a1f-b8ea81dea10e" contextRef="C_5bc08da6-a665-4039-90b4-16e030a96f5b" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">7,995</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_acd0ffac-f5ee-49b4-9695-19bb90c80396" contextRef="C_bcadbc9e-14de-4605-8f58-6e9f45af0c4f" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">363</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dc24cc9c-20b9-4f34-9405-2dfd1eb03e7e" contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">87,522</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9b77d6c6-1911-426e-95fe-d0761fc8f373" contextRef="C_5b5a004b-7578-415d-9824-2c1459fadf98" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">44,641</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c6adbf0c-63cb-4762-a1e3-83e39185adfa" contextRef="C_2d7e342a-22e9-4954-a136-8a3fa481fdd9" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,806</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2beff28d-3b94-4b80-ad16-898f4b0f3c10" contextRef="C_759bff4f-8d73-4edd-8334-8502baad65ed" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">176</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ddb626d2-ca64-4463-91f1-3f1ee4045078" contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">41,659</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_80aeeee9-54e1-429e-aa4d-afbd283729a6" contextRef="C_51cfa482-c051-46b6-9734-7b94907f3dbb" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">140,521</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6f9af67f-5e14-4a77-a58a-515812540c33" contextRef="C_c4880db7-af04-4cdb-b304-5ce220b387aa" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">10,801</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_0e44e1da-4ede-43a2-8043-4d543bbe09a1" contextRef="C_bcadbc9e-14de-4605-8f58-6e9f45af0c4f" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">363</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_dcc16267-7d4c-4561-b74c-e3b3ed8dcf4b" contextRef="C_759bff4f-8d73-4edd-8334-8502baad65ed" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">176</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e36ed18d-5b14-436c-9c97-bf99404b3506" contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">129,181</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p><ix:exclude><div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">18</span></p></div></div></ix:exclude><ix:exclude>
       <hr style="page-break-after:always;"/><div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div></ix:exclude>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.297%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.583%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.503%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.503%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.503%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.503%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_636c154e-9902-411d-9896-3b3312f5680a" contextRef="C_c6acfd3d-6aef-4cd7-85d9-236cd5a8ef9b" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">194,659</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5a54eadc-c781-4ba2-b735-cd39a937ba53" contextRef="C_cd2d2d4c-054f-42c0-96a0-c9e2397c4302" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">7,635</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_f21f9296-5aba-49b3-91d0-385b1d1b8aef" contextRef="C_5433d678-8101-4fb8-8a5c-02e55ea8ea0b" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">283</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_a5c0172f-c0a4-476c-8bc0-774643bac06e" contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">186,741</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_d0a39ef6-a7db-429e-a993-2b5a7b747932" contextRef="C_42d2b36f-dc80-4a87-ab71-5a910665ed94" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">84,252</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_7bd98112-2898-4134-bca9-60e89c361e7b" contextRef="C_52ba983d-3382-4f38-ae88-680f1dbd23ea" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">6,975</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_5d9fc1af-5246-415c-b23d-5c1068071fe6" contextRef="C_55e1ae32-8285-46e6-b643-7e944a46252e" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">164</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_2fc6bf3f-dadb-44a8-a39b-4481d72ebf61" contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">77,113</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b97cdf65-b62c-4e02-a509-e8231297841f" contextRef="C_88a27ed3-b991-49ee-a1c1-3c521b4793cd" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">278,911</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3bd1758f-86d0-407a-beac-37b23b056883" contextRef="C_2db0f802-8f6d-4420-8da6-1484e57c4619" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">14,610</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_086f9d98-06ce-4698-ade1-76a7d90fd943" contextRef="C_5433d678-8101-4fb8-8a5c-02e55ea8ea0b" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">283</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c0fe7dd9-3f6e-4232-9499-88912228a923" contextRef="C_55e1ae32-8285-46e6-b643-7e944a46252e" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">164</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_820b641e-5cbf-4ac3-a6fc-8a1185e8e34a" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">263,854</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.3%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
        <td style="width:1.02%;"/>
        <td style="width:1%;"/>
        <td style="width:8.520000000000001%;"/>
        <td style="width:1%;"/>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e848e843-8a7e-4790-8365-efab436dc543" contextRef="C_23439863-e7d0-4882-8948-606e7210181d" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">171,970</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_3e07b178-d6db-41ea-9ec6-6d859954f0cc" contextRef="C_2cef0ee5-7a56-4b23-9cdd-ea77dcbf5dae" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">9,533</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1bacbb3f-3684-4d8e-8369-56d1ad55a7d0" contextRef="C_9d6d5895-660d-4016-8c6f-e82667ea9131" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">460</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_1aef3591-e758-4ec4-8b64-77d5db80dbdd" contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">161,977</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_c1b7c4aa-d59b-45fc-ad68-c47080f411ed" contextRef="C_7e7c49f2-927b-4b0a-8e2f-ab88b55fd2f5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">83,682</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_b471ebe2-0321-449c-86a3-5fa7016dedb2" contextRef="C_6605e0a9-8aca-4153-b976-41c11dd21de3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,641</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_729f03b3-9f09-47fd-92b6-d78b5088f9db" contextRef="C_7f4dfa60-c725-43ba-8f56-61a75aa5d622" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">274</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_e54edbd0-4bd4-42b8-9368-6fa3ec49426e" contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">79,767</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_ac6c362b-e825-401b-bbcd-864ceac7f6c9" contextRef="C_e0d374a7-ef0e-4c6b-ade8-621855261bfc" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">255,652</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_6ced4bca-0c91-4211-b57c-aedeae7c3dd6" contextRef="C_8bff0fcf-8302-4d60-af67-20a721fea746" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">13,174</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_353f81aa-e3e5-47da-8eab-d110aa92871a" contextRef="C_9d6d5895-660d-4016-8c6f-e82667ea9131" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">460</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_fc1dc557-2bdf-4ee8-bba8-e2b995dd1aee" contextRef="C_7f4dfa60-c725-43ba-8f56-61a75aa5d622" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">274</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_880b6ea3-6ee2-4c8e-b5c5-b90e53ea13cd" contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">241,744</ix:nonFraction></span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></ix:nonNumeric></div></ix:nonNumeric></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_883b8ac2-8b67-459e-9ee3-2d2c18e48844" contextRef="C_b3462824-949c-41a4-841e-4bb62a638246" name="us-gaap:SubsequentEventsTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">17.	Subsequent Events</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On July 29, 2024, the Company completed its acquisition of EnviroCare International (&#8220;EnviroCare"), based in American Canyon, California. EnviroCare is a leading, international designer and provider of industrial exhaust air contamination treatment and control systems, solutions and services across a wide range of industrial and municipal applications. This acquisition advances the Company's leadership position within the industrial processing solutions segment by adding a range of solutions and access to new geographic markets and industrial segments. The purchase price was approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"><ix:nonFraction id="F_9bfe0eb2-d4c8-4c3a-891b-1742be1478e3" contextRef="C_48e9a337-b814-47fb-aae0-b5faa898eb44" name="us-gaap:PaymentsForPreviousAcquisition" unitRef="U_USD" scale="6" decimals="-6" format="ixt:num-dot-decimal">17</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and financed using a combination of cash on the balance sheet and borrowings under the Company&#8217;s existing Credit Facility. The impact of this acquisition is not included in the Company's results for the three or six months ended June 30, 2024. The initial accounting for the acquisition was not complete at the time the financial statements were issued due to the timing of the acquisition and the filing of this Quarterly Report on Form 10-Q. As a result, complete disclosures as required under ASC 805, Business Combinations cannot be made at this time.</span></p></ix:nonNumeric></div>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">19</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CECO ENVIRONMENTAL CORP. AND SUBSIDIARIES</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">AND RESULTS OF OPERATIONS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_2_managements_discussion_analysis_f"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM 2.	Management&#8217;s Discussion and Analysis of</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Financial Condition and Results of Operations</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s Condensed Consolidated Statements of Income for the three and six months ended June 30, 2024 and 2023 reflect the consolidated operations of the Company and its subsidiaries.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CECO Environmental Corp. (&#8220;CECO,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or the &#8220;Company&#8221;) is a leading environmentally focused, diversified industrial company, serving the broad landscape of industrial air, industrial water and energy transition markets globally providing innovative technology and application expertise. CECO helps companies grow their business with safe, clean, and more efficient solutions that help protect people, the environment and industrial equipment. CECO solutions improve air and water quality, optimize emissions management, and increase the energy and process efficiency for highly engineered applications in power generation, midstream and downstream hydrocarbon processing and transport, chemical processing, electric vehicle production, polysilicon fabrication, semiconductor and electronics production, battery production and recycling, specialty metals, aluminum and steel production, beverage can manufacturing, and industrial and produced water and wastewater treatment, and a wide range of other industrial end markets.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Market Pressures</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The senior management team monitors and manages the Company&#8217;s ability to operate effectively as the result of market pressures. We are monitoring key materials market indexes and trends and adjusting our material procurement strategies accordingly. We have secured raw materials from existing and alternate suppliers and have taken other mitigating actions to mitigate supply disruptions; however, we cannot guarantee that we will be able to continue to do so in the future. If we are unable to mitigate the effects of supply disruptions, our business, results and financial condition could be adversely affected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Note Regarding Use of Non-GAAP Financial Measures</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s unaudited condensed consolidated financial statements are prepared in accordance with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;). These GAAP financial statements include certain charges the Company believes are not indicative of its core ongoing operational performance.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As a result, the Company provides financial information in this Management&#8217;s Discussion and Analysis that was not prepared in accordance with GAAP and should not be considered as an alternative to the information prepared in accordance with GAAP. The Company provides this non-GAAP financial information because the Company&#8217;s management utilizes it to evaluate its ongoing financial performance and the Company believes it provides greater transparency to investors as supplemental information to its GAAP results.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has provided the non-GAAP financial measures of non-GAAP operating income and non-GAAP operating margin as a result of items that the Company believes are not indicative of its ongoing operations. These include transactions associated with the Company&#8217;s acquisitions and the items described below in &#8220;Consolidated Results.&#8221; The Company believes that evaluation of its financial performance compared with prior and future periods can be enhanced by a presentation of results that exclude the impact of these items. The Company has incurred substantial expense and income associated with acquisitions. While the Company cannot predict the exact timing or amounts of such charges, it does expect to treat the financial impact of these transactions as special items in its future presentation of non-GAAP results.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">20</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Results of Operations</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Consolidated Results</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Condensed Consolidated Statements of Income for the three and six months ended June 30, 2024 and 2023 are as follows:</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:45.269%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:10.542%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:10.542%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:10.542%;"/>
    <td style="width:1%;"/>
    <td style="width:1.14%;"/>
    <td style="width:1%;"/>
    <td style="width:10.542%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in millions, except ratios)</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net sales</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137.5</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">263.9</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">241.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of sales</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">88.5</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">89.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">169.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">167.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Gross profit</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">49.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">39.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">94.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">74.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">Percent of sales</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">35.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">30.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">35.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">30.9</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and administrative expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">36.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">28.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">71.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">55.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">Percent of sales</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">26.5</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">22.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">27.1</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">23.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization and earnout expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisition and integration expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.5</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Restructuring expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Executive transition expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Asbestos litigation expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating income</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16.9</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14.1</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:9pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">Operating margin</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">6.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">6.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">6.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">5.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other (income) expense, net</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(0.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(2.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(0.5</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;">
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Interest expense</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(3.3</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(3.7</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(6.7</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="background-color:#ffffff;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(6.2</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Income before income taxes</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;">
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Income tax expense</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1.1</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#ffffff;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4.9</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6.9</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;">
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Noncontrolling interest</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(0.4</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(0.3</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(1.0</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="background-color:#ffffff;white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="background-color:#cff0fc;white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(0.8</span></p></td>
    <td style="background-color:#cff0fc;white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income attributable to CECO Environmental Corp.</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4.5</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5.9</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">To compare operating performance between the three and six months ended June 30, 2024 and 2023, the Company has adjusted GAAP operating income to exclude (1) amortization of intangible assets, and earnout expenses, (2) acquisition and integration expenses, which include legal, accounting, and other expenses, (3) executive transition expenses, including fees and expenses incurred in the search for and hiring of new executives, (4) restructuring expenses primarily relating to severance, facility exits, and associated legal expenses, and (5) asbestos litigation expenses, related to expected future settlement payments.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table presents the reconciliation of GAAP operating income and GAAP operating margin to non-GAAP operating income and non-GAAP operating margin:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:46.437%;"/>
    <td style="width:1.121%;"/>
    <td style="width:1%;"/>
    <td style="width:10.27%;"/>
    <td style="width:1%;"/>
    <td style="width:1.121%;"/>
    <td style="width:1%;"/>
    <td style="width:10.27%;"/>
    <td style="width:1%;"/>
    <td style="width:1.121%;"/>
    <td style="width:1%;"/>
    <td style="width:10.27%;"/>
    <td style="width:1%;"/>
    <td style="width:1.121%;"/>
    <td style="width:1%;"/>
    <td style="width:10.27%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in millions, except ratios)</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating income as reported in accordance with GAAP</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16.9</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14.1</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">Operating margin in accordance with GAAP</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">6.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">6.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">6.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">5.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization and earnout expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisition and integration expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.5</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Restructuring expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Executive transition expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Asbestos litigation expenses</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Non-GAAP operating income</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">19.1</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">Non-GAAP operating margin</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">9.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">8.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">8.6</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;min-width:fit-content;">7.9</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-style:italic;min-width:fit-content;">%</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Orders booked</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">decreased $22.1 million, or 13.6%, to $140.8 million during the three months ended June 30, 2024 compared with $162.9 million in the three months ended June 30, 2023. The decrease is primarily driven by a decrease related to emissions management, offset by an increase related to our separation, filtration and industrial water technologies. Of the $140.8 million in orders booked during the three months ended June 30, 2024, $12.2 million is attributable to acquisitions that occurred during the preceding twelve month period.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Orders booked</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">decreased $22.9 million, or 7%, to $286.1 million during the six months ended June 30, 2024 compared with $309.0 million in the six months ended June 30, 2023. The decrease is primarily driven by a decrease related to emissions management, offset</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">21</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">by an increase related to our separation, filtration and industrial water technologies. Of the $286.1 million in orders booked during the six months ended June 30, 2024, $21.0 million is attributable to acquisitions that occurred during the preceding twelve month period.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Net sales for the three months ended June 30, 2024 increased $8.3 million, or 6.4%, to $137.5 million compared with $129.2 million for the three months ended June 30, 2023. The increase is broad-based, led by an increase of $5.2 million related to our separation, filtration and industrial water technologies. Approximately 97%, or $132.8 million, of net sales for the three months ended June 30, 2024 is attributable to organic revenue, defined as revenue recorded subsequent to the twelve month period post-acquisition date.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Net sales for the six months ended June 30, 2024 increased $22.2 million, or 9.2%, to $263.9 million compared with $241.7 million for the six months ended June 30, 2023. The increase is broad-based, led by an increase of $17.8 million related to separation, filtration, and industrial water technologies. Approximately 94% or $249.2 million, of net sales for the six months ended June 30, 2024 is attributable to organic revenue.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Gross profit increased $9.2 million, or 23.1%, to $49.0 million in the three months ended June 30, 2024 compared with $39.8 million in the three months ended June 30, 2023. The increase in gross profit is primarily attributable to sales mix, project execution and flow through from higher booked margins, as well as continued benefits from sourcing and value engineering. Gross profit as a percentage of sales increased to 35.6% in the three months ended June 30, 2024 compared with 30.8% in the three months ended June 30, 2023.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Gross profit increased $19.5 million, or 26.1%, to $94.2 million in the six months ended June 30, 2024 compared with $74.7 million in the six months ended June 30, 2023.  The increase in gross profit is primarily attributable to sales mix, project execution and flow through from higher booked margins, as well as continued benefits from sourcing and value engineering. Gross profit as a percentage of sales increased to 35.7% in the six months ended June 30, 2024 compared with 30.9% in the six months ended June 30, 2023.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Selling and administrative expenses were $36.4 million for the three months ended June 30, 2024 compared with $28.4 million for the three months ended June 30, 2023. The increase is primarily attributable to acquisitions during the prior year, workforce merit and other annual compensation adjustments, and investments in functional support for sourcing and manufacturing benefits.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Selling and administrative expenses were $71.4 million for the six months ended June 30, 2024 compared with $55.6 million for the six months ended June 30, 2023. The increase is primarily attributable to acquisitions during the prior year, workforce merit and other annual compensation adjustments, and investments in functional support for sourcing and manufacturing benefits.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amortization and earnout expense was $2.2 million for the three months ended June 30, 2024, compared with $2.3 million for the three months ended June 30, 2023.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amortization and earnout expense was $4.4 million for the six months ended June 30, 2024 compared with $4.0 million for the six months ended June 30, 2023. The increase in expense is attributable to an increase of $0.7 million in earnout expense and an increase of $0.4 million in definite lived asset amortization due to increased intangible assets attributable to prior year acquisitions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating income increased $0.7 million to $9.3 million for the three months ended June 30, 2024 compared with operating income of $8.6 million for the three months ended June 30, 2023. The increase in operating income is primarily attributable to the increase in net sales.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating income increased $2.8 million to $16.9 million for the six months ended June 30, 2024 compared with operating income of  $14.1 million for the six months ended June 30, 2023. The increase in operating income is primarily attributable to the increase in net sales.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Non-GAAP operating income was $12.6 million for the three months ended June 30, 2024 compared with $11.4 million for the three months ended June 30, 2023. Non-GAAP operating income as a percentage of sales increased to 9.2% for the three months ended June 30, 2024 from 8.8% for the three months ended June 30, 2023.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Non-GAAP operating income was $22.8 million for the six months ended June 30, 2024 compared with $19.1 million for the six months ended June 30, 2023. Non-GAAP operating income as a percentage of sales increased to  8.6% for the three months ended June 30, 2024 from 7.9% for the six months ended June 30, 2023.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Interest expense decreased to $3.3 million in the three months ended June 30, 2024 compared with interest expense of $3.8</span><span style="color:#ffffff;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">million for the three months ended June 30, 2023. The decrease in interest expense is primarily due to reduction of the debt balance.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">22</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Interest expense increased to $6.7 million in the six months ended June 30, 2024 compared with interest expense of $6.2</span><span style="color:#ffffff;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">million for the six months ended June 30, 2023. The increase in interest expense is primarily due to rising interest rates.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Income tax expense was $0.4 million for the three months ended June 30, 2024 compared with income tax expense of $1.0 million for the three months ended June 30, 2023. Income tax expense was $1.1 million for the six months ended June 30, 2024 compared with income tax expense of $1.0 million for the six months ended June 30, 2023. The effective income tax rate for the three months ended June 30, 2024 was 7.4% compared with 19.8% for the three months ended June 30, 2023. The effective income tax rate for the six months ended June 30, 2024 was 13.1% compared with 13.3% for the six months ended June 30, 2023. The effective income tax rates for the three and six months ended June 30, 2024 differ from the United States federal statutory rate. Our effective tax rate is affected by certain other permanent differences, including state income taxes, non-deductible incentive stock-based compensation, and differences in tax rates among the jurisdictions in which we operate. Additionally, we received a tax indemnification payment of $0.5 million, related to a prior year acquisition, in the second quarter of 2024.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Business Segments</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s operations are organized and reviewed by management along its product lines or end market that the segment serves and are presented in two reportable segments. The results of the segments are reviewed through &#8220;Income from operations&#8221; on the unaudited Condensed Consolidated Statements of Income.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:46.4%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.280000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.280000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.280000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.280000000000001%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net Sales (less intra- and inter-segment sales)</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">97,392</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">87,522</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">186,741</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">161,977</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">40,130</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,659</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">77,113</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">79,767</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,522</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129,181</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">263,854</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">241,744</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:46.4%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.280000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.280000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.280000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.280000000000001%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Income from Operations</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">19,330</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,089</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,607</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23,894</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,669</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,586</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,769</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,131</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;">(1)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(15,742</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(10,072</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(31,433</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(19,961</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total income from operations</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,257</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,603</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,943</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,064</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">(1) </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">	</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Includes corporate compensation, professional services, information technology and other general and administrative corporate expenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">  </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Engineered Systems Segment</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Engineered Systems segment orders booked</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">decreased $3.4 million, or 3.2%, to $100.6 million during the three months ended June 30, 2024 compared with $103.9 million in the three months ended June 30, 2023. The decrease is primarily driven by a decrease related to emissions management, offset by an increase related to dampers and expansion joints. Of the $100.6 million in orders booked during the three months ended June 30, 2024, $12.2 million is attributable to acquisitions that occurred during the preceding twelve month period.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Engineered Systems segment orders booked were $200.0 million during the six months ended June 30, 2024 compared with $200.5 million in the six months ended June 30, 2023. Of the $200.0 million in orders booked during the six months ended June 30, 2024, $21.0 million is attributable to acquisitions that occurred during the preceding twelve month period.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Engineered Systems segment net sales increased $9.9 million to $97.4 million for the three months ended June 30, 2024 compared with $87.5 million for the three months ended June 30, 2023. The increase is led by an increase of $5.2 million related to our separation, filtration, and industrial water technologies. Approximately 95%, or $92.7 million, of net sales for the three months ended June 30, 2024 is attributable to organic revenue.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Engineered Systems segment net sales increased $24.7 million to $186.7 million for the six months ended June 30, 2024 compared with $162.0 million for the six months ended June 30, 2023. The increase is led by an increase of $17.8 million related to our separation, filtration, and industrial water technologies. Approximately 92%, or $172.1 million, of net sales for the six months ended June 30, 2024 is attributable to organic revenue.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">23</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating income for the Engineered Systems segment increased $5.2 million to $19.3 million for the three months ended June 30, 2024 compared with $14.1 million for the three months ended June 30, 2023. The increase is primarily attributable to increased net sales, partially offset by an increase in direct costs.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating income for the Engineered Systems segment increased $11.7 million to $35.6 million for the six months ended June 30, 2024 compared with $23.9 million for the six months ended June 30, 2023. The increase is primarily attributable to increased net sales, partially offset by an increase in direct costs.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Industrial Process Solutions Segment</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Industrial Process Solutions segment orders booked</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">decreased $18.7 million, or 31.8%, to $40.2 million during the three months ended June 30, 2024 compared with $58.9 million in the three months ended June 30, 2023. The decrease is primarily driven by a decrease related to industrial air end markets, offset by an increase related to duct fabrication and installation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Industrial Process Solutions segment orders booked decreased $23.0 million, or 21.2%, to $85.5 million during the six months ended June 30, 2024 compared with $108.5 million in the six months ended June 30, 2023. The decrease is primarily driven by a decrease related to industrial air end markets, offset by an increase related to duct fabrication and installation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Industrial Process Solutions segment net sales were $40.1 million for the three months ended June 30, 2024 compared with $41.7 million for the three months ended June 30, 2023. All sales for the three months ended June 30, 2024 represent organic revenue.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Industrial Process Solutions segment net sales were $77.1 million for the six months ended June 30, 2024 compared with $79.8 million for the six months ended June 30, 2023. All sales for the six months ended June 30, 2024 represent organic revenue.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating income for the Industrial Process Solutions segment increased $1.1 million to $5.7 million for the three months ended June 30, 2024 compared with $4.6 million for the three months ended June 30, 2023. The increase is primarily attributable to a decrease in direct costs, partially offset by a decrease in net sales.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating income for the Industrial Process Solutions segment increased $2.7 million to $12.8 million for the six months ended June 30, 2024 compared with $10.1 million for the six months ended June 30, 2023. The increase is primarily attributable to increased sales, partially offset by an increase in direct costs.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Corporate and Other Segment</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating expense for the Corporate and Other segment increased $5.6 million to $15.7 million for the three months ended June 30, 2024 compared with $10.1 million for the three months ended June 30, 2023. The increase is primarily attributable to investments made to support growth inclusive of acquisition and integration expenses, and inflationary increases for wages and services.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating expense for the Corporate and Other segment increased $11.4 million to $31.4 million for the six months ended June 30, 2024 compared with $20.0 million for the six months ended June 30, 2023. The increase is primarily attributable to investments made to support growth inclusive of acquisition and integration expenses, and inflationary increases for wages and services.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Backlog</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Backlog (i.e., unfulfilled or remaining performance obligations) represents the sales we expect to recognize for our products and services for which control has not yet transferred to the customer.  Backlog increased to $390.9 million as of June 30, 2024 from $370.9 million as of December 31, 2023. Our customers may have the right to cancel a given order. Historically, cancellations have not been common. Backlog is adjusted on a quarterly basis for adjustments in foreign currency exchange rates. Substantially all backlog is expected to be delivered within 12 to 18 months. Backlog is not defined by GAAP and our methodology for calculating backlog may not be consistent with methodologies used by other companies.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">New Accounting Pronouncements</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For information regarding recent accounting pronouncements, see Note 2 to the unaudited condensed consolidated financial statements within Item 1 of this Quarterly Report on Form 10-Q.</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">24</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Liquidity and Capital Resources</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">When we undertake large jobs, our working capital objective is to make these projects self-funding. We work to achieve this by obtaining customer down payments, progress billing contracts, when possible, utilizing extended payment terms from material suppliers, and paying sub-contractors after payment from our customers, which is an industry practice. Our investment in net working capital is funded by cash flow from operations and by our revolving line of credit under our Credit Facility (as defined below).</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At June 30, 2024, the Company had working capital of $74.1 million, compared with $78.3 million at December 31, 2023. The ratio of current assets to current liabilities was 1.36 to 1.00 on June 30, 2024, as compared with a ratio of 1.39 to 1.00 on December 31, 2023. The decrease in the ratio was driven by timing of cash receipts and payments to suppliers.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At June 30, 2024 and December 31, 2023, cash and cash equivalents totaled $36.5 million and $54.8 million, respectively. As of June 30, 2024 and December 31, 2023, $28.6 million and $38.5 million, respectively, of our cash and cash equivalents were held by certain non-United States subsidiaries, as well as being denominated in foreign currencies.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Debt consisted of the following:</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:68.754%;"/>
    <td style="width:1.58%;"/>
    <td style="width:1%;"/>
    <td style="width:11.902000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.58%;"/>
    <td style="width:1%;"/>
    <td style="width:12.182%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Outstanding borrowings under Credit Facility (defined below)<br/>&#160;&#160;&#160;&#160;&#160;Term loan payable in quarterly principal installments of $550 through September<br/>&#160;&#160;&#160;&#160;&#160;2023, $2,232 through September 2025 and $2,977 thereafter with balance due upon<br/>&#160;&#160;&#160;&#160;&#160;maturity in December 2026</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Term loan</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">107,959</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">112,424</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Revolving credit facility</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,800</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,300</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total outstanding borrowings under the Credit Facility</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">123,759</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129,724</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Outstanding borrowings under the joint venture term debt</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,123</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,855</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Unamortized debt discount</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(1,056</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(1,296</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total outstanding borrowings</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">130,826</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,283</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;&#160;&#160;Less: current portion</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(10,580</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(10,488</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total debt, less current portion</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">120,246</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">126,795</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Credit Facility</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s outstanding borrowings in the United States consist of a senior secured term loan and a senior secured revolver loan with sub-facilities for letters of credit, swing-line loans and multi-currency loans (collectively, the &#8220;Credit Facility&#8221;).  As of June 30, 2024 and December 31, 2023, the Company was in compliance with all related financial and other restrictive covenants under the Credit Facility.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">See Note 8 to the unaudited condensed consolidated financial statements within Item 1 of this Quarterly Report on Form 10-Q for further information on the Company&#8217;s debt facilities.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Total unused credit availability under our existing Credit Facility is as follows:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:63.367%;"/>
    <td style="width:1.54%;"/>
    <td style="width:1%;"/>
    <td style="width:14.777000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.54%;"/>
    <td style="width:1%;"/>
    <td style="width:14.777000000000001%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in millions)</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Credit Facility, revolving loans</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">140.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">140.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Draw down</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(15.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(17.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Letters of credit open</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(13.2</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(13.3</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total unused credit availability</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">111.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">109.4</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amount available based on borrowing limitations</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">111.0</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">99.8</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">25</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"><br/>Overview of Cash Flows and Liquidity</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:63.367%;"/>
    <td style="width:1.54%;"/>
    <td style="width:1%;"/>
    <td style="width:14.777000000000001%;"/>
    <td style="width:1%;"/>
    <td style="width:1.54%;"/>
    <td style="width:1%;"/>
    <td style="width:14.777000000000001%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net cash provided by (used in) operating activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,891</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(611</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net cash used in investing activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(6,811</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(28,061</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net cash (used in) provided by financing activities</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(16,565</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">29,498</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Effect of exchange rate changes on cash and cash equivalents</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(3,049</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,141</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net (decrease) increase in cash</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(18,534</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,967</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Operating Activities</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the six months ended June 30, 2024, $7.9 million of cash was provided by operating activities compared with $0.6 million used in operations in the prior year period, representing $8.5 million additional cash generated. Cash flow from operating activities in the first six months of 2024 increased year-over-year primarily due to timing of costs and billings on uncompleted contracts, and improved management of payments to suppliers.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Investing Activities</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the six months ended June 30, 2024, net cash used in investing activities was $6.8 million compared with $28.1 million used in investing activities in the prior year period. For the six months ended June 30, 2024, the $6.8 million cash used in investing activities was primarily the result of acquisitions of property and equipment. In the prior year period, the $28.1 million cash used in investing activities was the result of $24.1 million used for acquisitions as described in Note 15 and $3.9 million for the acquisition of property and equipment.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Financing Activities</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the six months ended June 30, 2024, $16.6 million was used in financing activities compared with $29.5 million provided by financing activities in the prior year period, for a decrease of $12.9 million. For the six months ended June 30, 2024, the primary uses of cash for financing activities were $6.7 million to repay long-term debt, $5.0 million to repurchase common stock, $2.1 million of deferred consideration paid for acquisitions, $1.7 million for earnout payments and $1.1 million on distributions to the noncontrolling interest. In the prior year period, the Company used $31.9 million for net borrowings on the Company&#8217;s revolving credit lines, primarily used to finance acquisitions, $1.7 million in repayment on long-term debt, $0.9 million on deferred payments for acquisitions, and $0.6 million on distributions to the noncontrolling interest. The Company also received $1.2 million of proceeds from the exercise of stock options and the employee stock purchase plan.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Critical Accounting Policies and Estimates</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Management&#8217;s discussion and analysis of the Company&#8217;s financial condition and results of operations are based upon the Company&#8217;s condensed consolidated financial statements. The preparation of these financial statements requires management to make estimates and assumptions about future events. These estimates and the underlying assumptions affect the amounts of assets and liabilities reported, disclosures about contingent assets and liabilities and reported amounts of revenues and expenses. Such estimates include revenue recognition, the valuation of trade receivables, inventories, goodwill, intangible assets, other long-lived assets, legal contingencies, guarantee obligations and assumptions used in the calculation of income taxes, assumptions used in business combination accounting and related balances, and pension and post-retirement benefits, among others. These estimates and assumptions are based on management&#8217;s best estimates and judgment. Management evaluates its estimates and assumptions on an ongoing basis using historical experience and other factors. Management monitors economic conditions and other factors and will adjust such estimates and assumptions when facts and circumstances dictate. As future events and their effects cannot be determined with precision, actual results could differ significantly from these estimates.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Management believes there have been no changes during the six months ended June 30, 2024 to the items that the Company disclosed as its critical accounting policies and estimates in Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2023.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Forward-Looking Statements</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">This Quarterly Report on Form 10-Q includes forward-looking statements within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934, both as amended, which are intended to be covered by the safe harbor</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">26</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">for &#8220;forward-looking statements&#8221; provided by the Private Securities Litigation Reform Act of 1995. Any statements contained in this Quarterly Report on Form 10-Q, other than statements of historical fact, including statements about management&#8217;s beliefs and expectations, are forward-looking statements and should be evaluated as such. These statements are made on the basis of management&#8217;s views and assumptions regarding future events and business performance. We use words such as &#8220;believe,&#8221; &#8220;expect,&#8221; &#8220;anticipate,&#8221; &#8220;intends,&#8221; &#8220;estimate,&#8221; &#8220;forecast,&#8221; &#8220;project,&#8221; &#8220;will,&#8221; &#8220;plan,&#8221; &#8220;should&#8221; and similar expressions to identify forward-looking statements. Forward-looking statements involve risks and uncertainties that may cause actual results to differ materially from any future results, performance or achievements expressed or implied by such statements. Potential risks and uncertainties, among others, that could cause actual results to differ materially are discussed under &#8220;Item 1A. Risk Factors&#8221; of this Quarterly Report on Form 10-Q and in the Company&#8217;s Annual Report on Form 10-K for the fiscal year ended December 31, 2023, and include, but are not limited to:</span></p>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the sensitivity of our business to economic and financial market conditions generally and economic conditions in CECO&#8217;s service areas; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">dependence on fixed price contracts and the risks associated therewith, including actual costs exceeding estimates and method of accounting for revenue; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the effect of growth on CECO&#8217;s infrastructure, resources and existing sales; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the ability to expand operations in both new and existing markets; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the potential for contract delay or cancellation as a result of on-going or worsening supply chain challenges; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">liabilities arising from faulty services or products that could result in significant professional or product liability, warranty or other claims; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">changes in or developments with respect to any litigation or investigation; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">failure to meet timely completion or performance standards that could result in higher cost and reduced profits or, in some cases, losses on projects; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the potential for fluctuations in prices for manufactured components and raw materials, including as a result of tariffs and surcharges, and rising energy costs; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">inflationary pressures relating to rising raw material costs and the cost of labor;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the substantial amount of debt incurred in connection with our strategic transactions and our ability to repay or refinance it or incur additional debt in the future; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the impact of federal, state or local government regulations; </span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">our ability to repurchase shares of our common stock and the amounts and timing of repurchases;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">our ability to successfully realize the expected benefits of our restructuring program;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">economic and political conditions generally;</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">our ability to successfully identify acquisition targets, integrate acquired businesses and realize the synergies from strategic transactions; and</span></div></div>
  <div class="item-list-element-wrapper" style="margin-left:3.333%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:3.333%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:3.447919145106397%;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">unpredictability and severity of catastrophic events, including cybersecurity threats, acts of terrorism or outbreak of war or hostilities or public health crises, as well as management&#8217;s response to any of the aforementioned factors.</span></div></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Many of these risks are beyond management&#8217;s ability to control or predict. Should one or more of these risks or uncertainties materialize, or should any related assumptions prove incorrect, actual results may vary in material aspects from those currently anticipated. Investors are cautioned not to place undue reliance on such forward-looking statements as they speak only to our views as of the date the statement is made. Furthermore, the forward-looking statements speak only as of the date they are made. Except as required under the federal securities laws or the rules and regulations of the Securities and Exchange Commission (the &#8220;SEC&#8221;), we undertake no obligation to update or review any forward-looking statements, whether as a result of new information, future events or otherwise.</span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_3_quantitative_qualitative_disclosu"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM 3.	QUANTITATIVE AND QUALITAT</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">IVE DISCLOSURES ABOUT MARKET RISK</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We are exposed to certain market risks, primarily changes in interest rates. Market risk is the potential loss arising from adverse changes in market rates and prices, such as foreign currency exchange and interest rates. For the Company, these exposures are</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">27</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">primarily related to changes in interest rates. We do not currently hold any derivatives or other financial instruments purely for trading or speculative purposes.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The carrying value of the Company&#8217;s total long-term debt and current maturities of long-term debt at June 30, 2024 was $131.9 million. Market risk was estimated as the potential decrease (increase) in future earnings and cash flows resulting from a hypothetical 10% increase (decrease) in the Company&#8217;s estimated weighted average borrowing rate at June 30, 2024. Most of the interest on the Company&#8217;s debt is indexed to SOFR market rates. The estimated annual impact of a hypothetical 10% change in the estimated weighted average borrowing rate at June 30, 2024 is $1.0 million.</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has wholly-owned subsidiaries in several countries, including in the Netherlands, Canada, the People&#8217;s Republic of China, Mexico, United Kingdom, Singapore, India, United Arab Emirates and South Korea. In the past, we have not hedged our foreign currency exposure, and fluctuations in exchange rates have not materially affected our operating results. Future changes in exchange rates may positively or negatively impact our revenues, operating expenses and earnings. Transaction gains included in &#8220;Other (expense) income, net&#8221; line of the Condensed Consolidated Statements of Income were $0.5 million and $0.3 million for the three months ended June 30, 2024 and 2023, respectively, and $1.6 million and $0.8 million for the six months ended June 30, 2024 and 2023, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_4_controls_procedures"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM  4.	CONTROL</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">S AND PROCEDURES</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Evaluation of Disclosure Controls and Procedures</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company maintains disclosure controls and procedures (as defined in Rule 13a-15(e) of the Securities Exchange Act of 1934 (the &#8220;Exchange Act&#8221;)) that are designed to ensure that information required to be disclosed by the Company in reports that it files or submits under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the SEC&#8217;s rules and forms, and that such information is accumulated and communicated to the Company&#8217;s management, including its principal executive officer and principal financial officer, as appropriate, to allow timely decisions regarding required disclosure.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s management, with the participation of the Company&#8217;s Chief Executive Officer and Chief Financial Officer, evaluated the effectiveness of the Company&#8217;s disclosure controls and procedures as of the end of the period covered by this Quarterly Report on Form 10-Q. Based on that evaluation, our management, including our Chief Executive Officer and Chief Financial Officer, concluded that our disclosure controls and procedures were effective as of June 30, 2024, as the result of the remediation of the material weaknesses in our internal control over financial reporting discussed below, which were previously reported.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Management believes that the condensed consolidated financial statements included in this report present fairly, in all material respects, the Company&#8217;s financial condition, results of operations and cash flows for each of the periods presented in this report in conformity with accounting principles generally accepted in the United States of America.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Previously Reported Material Weaknesses in Internal Control over Financial Reporting</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Revenue Recognition</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As previously reported, we identified a material weakness in internal control over financial reporting relating to management&#8217;s review of its revenue recognition for contracts recognized over time isolated to our Engineered Systems segment, which was remediated as of June 30, 2024. Specifically, management did not retain appropriate documentation supporting the review of over time revenue recognition for customer contracts within the Engineered Systems segment. This material weakness did not result in any material misstatement in our interim financial statements or disclosures, and there were no changes required to any of our previously released interim or audited consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Balance Sheet Reconciliations</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As previously reported, we identified a material weakness in internal control over financial reporting relating to management&#8217;s review of balance sheet reconciliations for certain divisions within our Engineered Systems segment, which was remediated as of March 31, 2024. Specifically, management did not review the reconciliations prepared for balance sheet accounts for certain divisions within the Engineered Systems segment as required by Company policy. This material weakness did not result in any material misstatement in our interim financial statements or disclosures, and there were no changes required to any of our previously released interim or audited consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Remediation Efforts to Address Material Weaknesses</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">28</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Management is committed to maintaining a strong internal control environment. In response to the identified material weaknesses, management, with the oversight of the Audit Committee of the Board of Directors, has taken actions toward the remediation of the material weaknesses in internal control over financial reporting, including reinforcing the importance of adherence to Company policies regarding control performance and related documentation with control owners, strengthening existing training programs for control owners, and developing monitoring activities to validate the performance of controls by control owners. Management has reinforced policies through training sessions as well as ongoing communications, and implemented incremental monitoring activities. As of June 30, 2024, these remediation efforts are complete.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Changes in Internal Control Over Financial Reporting</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Other than the remediation of the previous period material weaknesses as described above, there were no changes in the Company&#8217;s internal control over financial reporting (as defined in Rule 13a-15(f) of the Exchange Act) during the quarter ended June 30, 2024 that materially affected, or are reasonably likely to materially affect, the Company&#8217;s internal control over financial reporting.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Limitations on the Effectiveness of Controls</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Control systems, no matter how well conceived and operated, are designed to provide a reasonable, but not an absolute, level of assurance that the objectives of the control system are met. Further, the design of a control system must reflect the fact that there are resource constraints, and the benefits of controls must be considered relative to their costs. Because of the inherent limitations in all control systems, no evaluation of controls can provide absolute assurance that all control issues and instances of fraud, if any, within the Company have been detected. Because of the inherent limitations in a cost-effective control system, misstatements due to error or fraud may occur and not be detected. The Company conducts periodic evaluations of its internal controls to enhance, where necessary, its procedures and controls.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">29</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="part_ii_or_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">PART II &#8211; OTHE</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">R INFORMATION</span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_1_legal_proceedings"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM 1.	LEGAL</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> PROCEEDINGS</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">See Note 14 to the unaudited Condensed Consolidated Financial Statements contained in Part I, Item 1 of this Quarterly Report on Form 10-Q for information regarding legal proceedings in which the Company is involved.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_1a_risk_factors"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM  1A.	R</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ISK FACTORS</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">There have been no material changes in the Company&#8217;s risk factors that were disclosed in &#8220;Part I &#8211; Item 1A. Risk Factors&#8221; of the Company's Annual Report on Form 10-K for the year ended December 31, 2023.</span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_2_unregistered_sales_equity_securit"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM 2.	UNREGISTERED SALES OF EQUI</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">TY SECURITIES AND USE OF PROCEEDS</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Purchases of Equity Securities by the Issuer and Affiliated Purchasers</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table provides information about our purchases of the Company's equity securities for the three months ended June 30, 2024:</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:44.789%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:12.042%;"/>
    <td style="width:1%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:9.922%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:1%;"/>
    <td style="width:10.742%;"/>
    <td style="width:1%;"/>
    <td style="width:1.12%;"/>
    <td style="width:1%;"/>
    <td style="width:10.262%;"/>
    <td style="width:1%;"/>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="14" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Issuer's Purchases of Equity Securities</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands, except per share data)<br/>Period</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total Number of Shares Purchased </span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;position:relative;min-width:fit-content;">1</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Average Price Paid per Share</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total Number of Shares Purchased as Part of Publicly Announced Plans or Programs</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Approximate Dollar Value of Shares That May Yet Be Purchased Under the Plans or Programs</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">April 1, 2024 - April 30, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,000</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">May 1, 2024 - May 31, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">48,102</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23.09</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">48,102</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,889</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">June 1, 2024 - June 30, 2024</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">38,251</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23.25</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">38,251</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,000</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">86,353</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23.16</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">86,353</span></p></td>
    <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
    <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(1) On May 10, 2022, the Board of Directors authorized a $20.0 million share repurchase program as described within Note 9 to the unaudited Condensed Consolidated Financial Statements. The program expires on April 30, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_3_defaults_upon_senior_securities"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM  3.	DEFAULTS UP</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ON SENIOR SECURITIES</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">None.</span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_4_mine_safety_disclosures"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM 4. 	MINE SAF</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ETY DISCLOSURES</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Not applicable.</span></p>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;" id="item_5_or_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM 5.	OTHER</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> INFORMATION</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(c)</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Rule 10b5-1 Trading Plans</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">   </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, no director or Section 16 officer of the Company </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_abc13136-a242-408d-a579-4b147019186b" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-false"><ix:nonNumeric id="F_f62902cb-2da3-4222-b7cf-f901c6ef5d0d" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="ecd:NonRule10b51ArrAdoptedFlag" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">adopted</span></ix:nonNumeric></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> or </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_d075c87f-db59-4bbe-b99e-646f88710f30" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="ecd:NonRule10b51ArrTrmntdFlag" format="ixt:fixed-false"><ix:nonNumeric id="F_a3f69b43-4f1b-432c-8733-e961587007e7" contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb" name="ecd:Rule10b51ArrTrmntdFlag" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">terminated</span></ix:nonNumeric></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> a &#8220;Rule 10b5-1 trading arrangement,&#8221; or &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as each term is defined in Item 408(a) of Regulation S-K.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">30</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="text-indent:-11.441%;padding-left:10.267%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="item_6_exhibits"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ITEM 6.	E</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">XHIBITS</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:99.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:9.098%;"/>
    <td style="width:1.02%;"/>
    <td style="width:89.882%;"/>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3.1</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="https://www.sec.gov/Archives/edgar/data/3197/000095017024063379/ceco-ex3_1.htm" style="-sec-extract:exhibit"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Certificate of Amendment to the Certificate of Incorporation of CECO Environmental Corp. (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K filed with the SEC on May 22, 2024)</span></a></p></td>
   </tr>
   <tr style="white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">31.1</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ceco-ex31_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Rule 13(a)/15d-14(a) Certification by Chief Executive Officer</span></a></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">31.2</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ceco-ex31_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Rule 13(a)/15d-14(a) Certification by Chief Financial Officer</span></a></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">32.1</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ceco-ex32_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Certification of Chief Executive Officer (18 U.S. Section 1350)</span></a></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">32.2</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ceco-ex32_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Certification of Chief Financial Officer (18 U.S. Section 1350)</span></a></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">101.INS</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Inline XBRL Instance Document</span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">101.SCH</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Inline XBRL Taxonomy Extension Schema Document with Embedded Linkbase Documents</span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
   </tr>
   <tr style="height:0.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">104</span></p></td>
    <td style="vertical-align:top;"><p style="font-size:6pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">31</span></p></div></div>
  <hr style="page-break-after:always;"/>
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">SIGNATURES</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:49.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:8.114%;"/>
    <td style="width:91.886%;"/>
   </tr>
   <tr style="height:12.95pt;white-space:pre-wrap;word-break:break-word;">
    <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">CECO Environmental Corp.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:13.7pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:12.95pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">By:</span></p></td>
    <td style="vertical-align:bottom;border-bottom:0.5pt solid;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">/s/ Kiril Kovachev</span></p></td>
   </tr>
   <tr style="height:12.95pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Kiril Kovachev</span></p></td>
   </tr>
   <tr style="height:12.95pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Chief Accounting Officer</span></p><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(principal accounting officer and duly authorized officer)</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="signatures"><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Date: July 30, 2024</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">32</span></p></div></div>
  <hr style="page-break-after:always;"/>
 </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>ceco-ex31_1.htm
<DESCRIPTION>EX-31.1
<TEXT>
<html>
 <head>
  <title>EX-31.1</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Exhibit 31.1</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certification of Chief Executive Officer</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">I, Todd Gleason, certify that:</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">1.	I have reviewed this Quarterly Report on Form 10-Q of CECO Environmental Corp.;</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2.	Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3.	Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4.	The registrant&#x2019;s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">a)	Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">b)	Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">c)	Evaluated the effectiveness of the registrant&#x2019;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</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">d)	Disclosed in this report any change in the registrant&#x2019;s internal control over financial reporting that occurred during the registrant&#x2019;s most recent fiscal quarter (the registrant&#x2019;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#x2019;s internal control over financial reporting; and</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.	The registrant&#x2019;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#x2019;s auditors and the audit committee of the registrant&#x2019;s board of directors (or persons performing the equivalent functions):</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">a)	All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#x2019;s ability to record, process, summarize and report financial information; and</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">b)	Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#x2019;s internal control over financial reporting.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <table style="border-spacing:0;table-layout:fixed;width:40.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:100%;"></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;border-bottom:0.5pt solid;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">/s/ Todd Gleason</font></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Todd Gleason</font></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Chief Executive Officer</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Date: July 30, 2024</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>3
<FILENAME>ceco-ex31_2.htm
<DESCRIPTION>EX-31.2
<TEXT>
<html>
 <head>
  <title>EX-31.2</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Exhibit 31.2</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certification of Chief Financial Officer</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">I, Peter Johansson, certify that:</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">1.	I have reviewed this Quarterly Report on Form 10-Q of CECO Environmental Corp.;</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2.	Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3.	Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4.	The registrant&#x2019;s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">a)	Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">b)	Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">c)	Evaluated the effectiveness of the registrant&#x2019;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</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">d)	Disclosed in this report any change in the registrant&#x2019;s internal control over financial reporting that occurred during the registrant&#x2019;s most recent fiscal quarter (the registrant&#x2019;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#x2019;s internal control over financial reporting; and</font></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.	The registrant&#x2019;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#x2019;s auditors and the audit committee of the registrant&#x2019;s board of directors (or persons performing the equivalent functions):</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">a)	All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#x2019;s ability to record, process, summarize and report financial information; and</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">b)	Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#x2019;s internal control over financial reporting.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <table style="border-spacing:0;table-layout:fixed;width:40.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:100%;"></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;border-bottom:0.5pt solid;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">/s/ Peter Johansson</font></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Peter Johansson</font></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Chief Financial and Strategy Officer</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Date: July 30, 2024</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>4
<FILENAME>ceco-ex32_1.htm
<DESCRIPTION>EX-32.1
<TEXT>
<html>
 <head>
  <title>EX-32.1</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Exhibit 32.1</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CERTIFICATION PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">18 U.S.C. SECTION 1350,</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">AS ADOPTED PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In connection with the Quarterly Report of CECO Environmental Corp. (the &#x201c;Company&#x201d;) on Form 10-Q for the quarter ended June 30, 2024 as filed with the Securities and Exchange Commission on the date hereof (the &#x201c;Report&#x201d;), I, Todd Gleason, Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. &#167; 1350, as adopted pursuant to &#167; 906 of the Sarbanes-Oxley Act of 2002, to the best of my knowledge and belief, that:</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(1)	The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(2)	The information contained in the Report fairly 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.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <table style="border-spacing:0;table-layout:fixed;width:40.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:100%;"></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;border-bottom:0.5pt solid;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">/s/ Todd Gleason</font><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </font></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Todd Gleason</font></p></td>
   </tr>
   <tr style="height:10pt;white-space:pre-wrap;word-break:break-word;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Chief Executive Officer</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#ff0000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Date: July 30, 2024</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>5
<FILENAME>ceco-ex32_2.htm
<DESCRIPTION>EX-32.2
<TEXT>
<html>
 <head>
  <title>EX-32.2</title>
 </head>
 <body style="margin: auto!important;padding: 8px;">
  <div style="padding-top:0.5in;min-height:0.5in;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Exhibit 32.2</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CERTIFICATION PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">18 U.S.C. SECTION 1350,</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">AS ADOPTED PURSUANT TO</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In connection with the Quarterly Report of CECO Environmental Corp. (the &#x201c;Company&#x201d;) on Form 10-Q for the quarter ended June 30, 2024 as filed with the Securities and Exchange Commission on the date hereof (the &#x201c;Report&#x201d;), I, Peter Johansson, Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. &#167; 1350, as adopted pursuant to &#167; 906 of the Sarbanes-Oxley Act of 2002, to the best of my knowledge and belief, that:</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(1)	The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</font></p>
  <p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(2)	The information contained in the Report fairly 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.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <table style="border-spacing:0;table-layout:fixed;width:40.0%;border-collapse:separate;">
   <tr style="visibility:collapse;">
    <td style="width:100%;"></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:top;border-bottom:0.5pt solid;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">/s/ Peter Johansson</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Peter Johansson</font></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Chief Financial and Strategy Officer</font></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Date: July 30, 2024</font></p>
  <div class="page-node-content"><div style="flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.5in;justify-content:flex-end;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p></div></div>
  <hr style="page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>6
<FILENAME>img58591874_0.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 img58591874_0.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1"  K %T# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
D\9+D99HRP)Z9SW%=#!,EQ"LL9)1NF01^AJ2BKA!QZW&E8__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>7
<FILENAME>ceco-20240630.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA WITH EMBEDDED LINKBASES DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!-- DFIN New ActiveDisclosure (SM) XBRL Schema Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2024-07-29T08:45:44.7301+00:00 -->
<!-- Copyright (c) 2024 Donnelly Financial Solutions, Inc. All Rights Reserved. -->
<xsd:schema targetNamespace="http://www.cecoenviro.com/20240630" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:ceco="http://www.cecoenviro.com/20240630" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2023" xmlns:ecd="http://xbrl.sec.gov/ecd/2023" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:srt="http://fasb.org/srt/2023" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:calc="https://xbrl.org/2023/calculation-1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/instance"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/linkbase"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" namespace="http://xbrl.org/2005/xbrldt"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd" namespace="http://xbrl.sec.gov/dei/2023"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/ecd/2023/ecd-sub-2023.xsd" namespace="http://xbrl.sec.gov/ecd-sub/2023"/>
  <xsd:import schemaLocation="https://www.xbrl.org/2023/calculation-1.1.xsd" namespace="https://xbrl.org/2023/calculation-1.1"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd" namespace="http://fasb.org/us-gaap/2023"/>
  <xsd:import schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" namespace="http://www.xbrl.org/dtr/type/2022-03-31"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd" namespace="http://xbrl.sec.gov/ecd/2023"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd" namespace="http://fasb.org/srt/2023"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" id="Role_DocumentDocumentAndEntityInformation">
        <link:definition>100000 - 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://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" id="StatementCondensedConsolidatedBalanceSheetsUnaudited">
        <link:definition>100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail2" id="DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail2">
        <link:definition>100020 - Disclosure - Accrued Expenses - Summary of Accrued Expenses (Detail) 2</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail2" id="DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail2">
        <link:definition>100030 - Disclosure - Earnings per Share - Number of Shares Outstanding for Calculation of Earnings Per Share (Detail) 2</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSeniorDebtSummaryOfDebtDetail2" id="DisclosureSeniorDebtSummaryOfDebtDetail2">
        <link:definition>100040 - Disclosure - Senior Debt - Summary of Debt (Detail) 2</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical" id="StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical">
        <link:definition>100050 - Statement - Condensed Consolidated Balance Sheets (Unaudited) (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://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail3" id="DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail3">
        <link:definition>100060 - Disclosure - Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Detail) 3</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited" id="StatementCondensedConsolidatedStatementsOfIncomeUnaudited">
        <link:definition>100070 - Statement - Condensed Consolidated Statements of Income (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited" id="StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited">
        <link:definition>100080 - Statement - Condensed Consolidated Statements of Comprehensive Income (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited" id="Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited">
        <link:definition>100090 - Statement - Condensed Consolidated Statements of Shareholders' Equity (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" id="Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited">
        <link:definition>100100 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail7" id="DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail7">
        <link:definition>100110 - Disclosure - Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Detail) 7</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBasisOfReportingForConsolidatedFinancialStatements" id="Role_DisclosureBasisOfReportingForConsolidatedFinancialStatements">
        <link:definition>995455 - Disclosure - Basis of Reporting for Consolidated Financial Statements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncements" id="Role_DisclosureNewFinancialAccountingPronouncements">
        <link:definition>995465 - Disclosure - New Financial Accounting Pronouncements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivable" id="Role_DisclosureAccountsReceivable">
        <link:definition>995475 - Disclosure - Accounts Receivable</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilities" id="DisclosureContractAssetsAndLiabilities">
        <link:definition>995485 - Disclosure - Contract Assets and Liabilities</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventories" id="Role_DisclosureInventories">
        <link:definition>995495 - Disclosure - Inventories</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssets" id="Role_DisclosureGoodwillAndIntangibleAssets">
        <link:definition>995505 - Disclosure - Goodwill and Intangible Assets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpenses3" id="DisclosureAccruedExpenses3">
        <link:definition>995515 - Disclosure - Accrued Expenses</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebt" id="Role_DisclosureSeniorDebt">
        <link:definition>995525 - Disclosure - Senior 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://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShare" id="Role_DisclosureEarningsPerShare">
        <link:definition>995535 - 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://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensation" id="Role_DisclosureShareBasedCompensation">
        <link:definition>995545 - Disclosure - Share-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://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlans" id="Role_DisclosurePensionAndEmployeeBenefitPlans">
        <link:definition>995555 - Disclosure - Pension and Employee Benefit Plans</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes" id="Role_DisclosureIncomeTaxes">
        <link:definition>995565 - Disclosure - Income Taxes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstruments" id="Role_DisclosureFinancialInstruments">
        <link:definition>995575 - Disclosure - Financial Instruments</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMatters" id="Role_DisclosureCommitmentsAndContingenciesLegalMatters">
        <link:definition>995585 - Disclosure - Commitments and Contingencies - Legal Matters</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitions8" id="DisclosureAcquisitions8">
        <link:definition>995595 - Disclosure - Acquisitions</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformation" id="Role_DisclosureBusinessSegmentInformation">
        <link:definition>995605 - Disclosure - Business Segment 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://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEvents" id="DisclosureSubsequentEvents">
        <link:definition>995615 - Disclosure - Subsequent Events</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncementsPolicies" id="Role_DisclosureNewFinancialAccountingPronouncementsPolicies">
        <link:definition>995625 - Disclosure - New Financial Accounting Pronouncements (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://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableTables" id="Role_DisclosureAccountsReceivableTables">
        <link:definition>995635 - Disclosure - Accounts Receivable (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://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesTables" id="DisclosureContractAssetsAndLiabilitiesTables">
        <link:definition>995645 - Disclosure - Contract Assets and Liabilities (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesTables" id="Role_DisclosureInventoriesTables">
        <link:definition>995655 - Disclosure - Inventories (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsTables" id="Role_DisclosureGoodwillAndIntangibleAssetsTables">
        <link:definition>995665 - Disclosure - Goodwill and Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesTables" id="DisclosureAccruedExpensesTables">
        <link:definition>995675 - Disclosure - Accrued Expenses (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://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtTables" id="Role_DisclosureSeniorDebtTables">
        <link:definition>995685 - Disclosure - Senior Debt (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://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareTables" id="DisclosureEarningsPerShareTables">
        <link:definition>995695 - 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://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansTables" id="Role_DisclosurePensionAndEmployeeBenefitPlansTables">
        <link:definition>995705 - Disclosure - Pension and Employee Benefit Plans (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables" id="DisclosureAcquisitionsTables">
        <link:definition>995715 - Disclosure - Acquisitions (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://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables" id="Role_DisclosureBusinessSegmentInformationTables">
        <link:definition>995725 - Disclosure - Business Segment Information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail" id="Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail">
        <link:definition>995735 - Disclosure - Accounts Receivable - Summary of Accounts Receivable (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail" id="Role_DisclosureAccountsReceivableAdditionalInformationDetail">
        <link:definition>995745 - Disclosure - Accounts Receivable - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails" id="DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails">
        <link:definition>995755 - Disclosure - Contract Assets and Liabilities - Summary of Contract Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails" id="DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails">
        <link:definition>995765 - Disclosure - Contract Assets and Liabilities (Additional Information) (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail" id="Role_DisclosureInventoriesSummaryOfInventoriesDetail">
        <link:definition>995775 - Disclosure - Inventories - Summary of Inventories (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesAdditionalInformationDetail" id="Role_DisclosureInventoriesAdditionalInformationDetail">
        <link:definition>995785 - Disclosure - Inventories - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail" id="Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail">
        <link:definition>995795 - Disclosure - Goodwill and Intangible Assets - Goodwill / Tradename (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail" id="Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail">
        <link:definition>995805 - Disclosure - Goodwill and Intangible Assets - Intangible Assets - Finite Life (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail" id="Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail">
        <link:definition>995815 - Disclosure - Goodwill and Intangible Assets - Finite Lived Intangible Assets Amortization Expense (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail" id="Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail">
        <link:definition>995825 - Disclosure - Goodwill and Intangible Assets - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail" id="DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail">
        <link:definition>995835 - Disclosure - Accrued Expenses - Summary of Accrued Expenses (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail" id="Role_DisclosureSeniorDebtSummaryOfDebtDetail">
        <link:definition>995845 - Disclosure - Senior Debt - Summary of Debt (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail" id="Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail">
        <link:definition>995855 - Disclosure - Senior Debt - Summary of Debt (Parenthetical) (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail" id="Role_DisclosureSeniorDebtAdditionalInformationDetail">
        <link:definition>995865 - Disclosure - Senior Debt - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail" id="Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail">
        <link:definition>995875 - Disclosure - Earnings per Share - Number of Shares Outstanding for Calculation of Earnings Per Share (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail" id="Role_DisclosureEarningsPerShareAdditionalInformationDetail">
        <link:definition>995885 - Disclosure - Earnings per Share - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail" id="Role_DisclosureShareBasedCompensationAdditionalInformationDetail">
        <link:definition>995895 - Disclosure - Share-Based Compensation - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail" id="Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail">
        <link:definition>995905 - Disclosure - Pension and Employee Benefit Plans - Components of Pension and Employee Benefit Expenses (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail" id="Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail">
        <link:definition>995915 - Disclosure - Pension and Employee Benefit Plans - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail" id="Role_DisclosureIncomeTaxesAdditionalInformationDetail">
        <link:definition>995925 - Disclosure - Income Taxes - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail" id="Role_DisclosureFinancialInstrumentsAdditionalInformationDetail">
        <link:definition>995935 - Disclosure - Financial Instruments - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail" id="Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail">
        <link:definition>995945 - Disclosure - Commitments and Contingencies - Legal Matters - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail" id="DisclosureAcquisitionsAdditionalInformationDetail">
        <link:definition>995955 - Disclosure - Acquisitions - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail" id="DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail">
        <link:definition>995965 - Disclosure - Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail" id="DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail">
        <link:definition>995975 - Disclosure - Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Parenthetical) (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails" id="DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails">
        <link:definition>995985 - Disclosure - Acquisitions - Schedule of Unaudited Pro Forma Financial Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail" id="Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail">
        <link:definition>995995 - Disclosure - Business Segment Information - Net Sales and Income from Operation by Business Segment (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail" id="Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail">
        <link:definition>996005 - Disclosure - Business Segment Information - Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail" id="Role_DisclosureBusinessSegmentInformationGoodwillDetail">
        <link:definition>996015 - Disclosure - Business Segment Information - Goodwill (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail" id="Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail">
        <link:definition>996025 - Disclosure - Business Segment Information - Intra-Segment and Inter-Segment Revenues (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" id="DisclosureSubsequentEventsAdditionalInformationDetails">
        <link:definition>996035 - Disclosure - Subsequent Events (Additional Information) (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbase id="lnk">
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://www.esma.europa.eu/xbrl/esef/arcrole/wider-narrower" xlink:href="http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd#wider-narrower" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="https://xbrl.org/2023/arcrole/summation-item" xlink:href="https://www.xbrl.org/2023/calculation-1.1.xsd#summation-item" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" xlink:href="ceco-20240630.xsd#StatementCondensedConsolidatedBalanceSheetsUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail2" xlink:href="ceco-20240630.xsd#DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail2" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail2" xlink:href="ceco-20240630.xsd#DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail2" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSeniorDebtSummaryOfDebtDetail2" xlink:href="ceco-20240630.xsd#DisclosureSeniorDebtSummaryOfDebtDetail2" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail3" xlink:href="ceco-20240630.xsd#DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail3" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited" xlink:href="ceco-20240630.xsd#StatementCondensedConsolidatedStatementsOfIncomeUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited" xlink:href="ceco-20240630.xsd#StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:href="ceco-20240630.xsd#Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail7" xlink:href="ceco-20240630.xsd#DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail7" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureInventoriesSummaryOfInventoriesDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureSeniorDebtSummaryOfDebtDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail" xlink:href="ceco-20240630.xsd#Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail" xlink:href="ceco-20240630.xsd#DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:href="ceco-20240630.xsd#Role_DocumentDocumentAndEntityInformation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical" xlink:href="ceco-20240630.xsd#StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:href="ceco-20240630.xsd#Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBasisOfReportingForConsolidatedFinancialStatements" xlink:href="ceco-20240630.xsd#Role_DisclosureBasisOfReportingForConsolidatedFinancialStatements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncements" xlink:href="ceco-20240630.xsd#Role_DisclosureNewFinancialAccountingPronouncements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivable" xlink:href="ceco-20240630.xsd#Role_DisclosureAccountsReceivable" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilities" xlink:href="ceco-20240630.xsd#DisclosureContractAssetsAndLiabilities" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventories" xlink:href="ceco-20240630.xsd#Role_DisclosureInventories" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssets" xlink:href="ceco-20240630.xsd#Role_DisclosureGoodwillAndIntangibleAssets" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpenses3" xlink:href="ceco-20240630.xsd#DisclosureAccruedExpenses3" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebt" xlink:href="ceco-20240630.xsd#Role_DisclosureSeniorDebt" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShare" xlink:href="ceco-20240630.xsd#Role_DisclosureEarningsPerShare" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensation" xlink:href="ceco-20240630.xsd#Role_DisclosureShareBasedCompensation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlans" xlink:href="ceco-20240630.xsd#Role_DisclosurePensionAndEmployeeBenefitPlans" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes" xlink:href="ceco-20240630.xsd#Role_DisclosureIncomeTaxes" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstruments" xlink:href="ceco-20240630.xsd#Role_DisclosureFinancialInstruments" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMatters" xlink:href="ceco-20240630.xsd#Role_DisclosureCommitmentsAndContingenciesLegalMatters" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitions8" xlink:href="ceco-20240630.xsd#DisclosureAcquisitions8" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformation" xlink:href="ceco-20240630.xsd#Role_DisclosureBusinessSegmentInformation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEvents" xlink:href="ceco-20240630.xsd#DisclosureSubsequentEvents" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncementsPolicies" xlink:href="ceco-20240630.xsd#Role_DisclosureNewFinancialAccountingPronouncementsPolicies" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableTables" xlink:href="ceco-20240630.xsd#Role_DisclosureAccountsReceivableTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesTables" xlink:href="ceco-20240630.xsd#DisclosureContractAssetsAndLiabilitiesTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesTables" xlink:href="ceco-20240630.xsd#Role_DisclosureInventoriesTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsTables" xlink:href="ceco-20240630.xsd#Role_DisclosureGoodwillAndIntangibleAssetsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesTables" xlink:href="ceco-20240630.xsd#DisclosureAccruedExpensesTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtTables" xlink:href="ceco-20240630.xsd#Role_DisclosureSeniorDebtTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareTables" xlink:href="ceco-20240630.xsd#DisclosureEarningsPerShareTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansTables" xlink:href="ceco-20240630.xsd#Role_DisclosurePensionAndEmployeeBenefitPlansTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables" xlink:href="ceco-20240630.xsd#DisclosureAcquisitionsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables" xlink:href="ceco-20240630.xsd#Role_DisclosureBusinessSegmentInformationTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureAccountsReceivableAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails" xlink:href="ceco-20240630.xsd#DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails" xlink:href="ceco-20240630.xsd#DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureInventoriesAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail" xlink:href="ceco-20240630.xsd#DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureSeniorDebtAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureEarningsPerShareAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureShareBasedCompensationAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureIncomeTaxesAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureFinancialInstrumentsAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail" xlink:href="ceco-20240630.xsd#DisclosureAcquisitionsAdditionalInformationDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail" xlink:href="ceco-20240630.xsd#DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails" xlink:href="ceco-20240630.xsd#DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureBusinessSegmentInformationGoodwillDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail" xlink:href="ceco-20240630.xsd#Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" xlink:href="ceco-20240630.xsd#DisclosureSubsequentEventsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
        <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:title="labelLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_BorrowingsOnRevolvingLineOfCredit" xlink:label="ceco_BorrowingsOnRevolvingLineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:label="us-gaap_DefinedBenefitPlanDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_DeferredConsiderationPaidForAcquisitions" xlink:label="ceco_DeferredConsiderationPaidForAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncontrollingInterestMember" xlink:label="us-gaap_NoncontrollingInterestMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:label="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyPendingClaimsNumber" xlink:label="us-gaap_LossContingencyPendingClaimsNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncatastrophicEventAxis" xlink:label="us-gaap_NoncatastrophicEventAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableTradeCurrent" xlink:label="us-gaap_AccountsPayableTradeCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestIncomeExpenseNet" xlink:label="us-gaap_InterestIncomeExpenseNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="us-gaap_PaymentsForPreviousAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PaymentsOnFinanceLeasesAndFinancingLiability" xlink:label="ceco_PaymentsOnFinanceLeasesAndFinancingLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent" xlink:label="us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:label="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" xlink:label="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentUnamortizedDiscount" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueRevenueRecognized1" xlink:label="us-gaap_DeferredRevenueRevenueRecognized1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" xlink:label="us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodAxis" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidatedEntitiesDomain" xlink:label="srt_ConsolidatedEntitiesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="us-gaap_NetIncomeLossAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterials" xlink:label="us-gaap_InventoryRawMaterials"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_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="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentMaturityDate" xlink:label="us-gaap_DebtInstrumentMaturityDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillPurchaseAccountingAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecuredDebt" xlink:label="us-gaap_SecuredDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="us-gaap_TreasuryStockCommonShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PercentageOfEquityHoldInJointVenture" xlink:label="ceco_PercentageOfEquityHoldInJointVenture"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesMember" xlink:label="us-gaap_AccruedLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_BankGuaranteesMember" xlink:label="ceco_BankGuaranteesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:label="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WarehouseAgreementBorrowings" xlink:label="us-gaap_WarehouseAgreementBorrowings"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockPlans" xlink:label="us-gaap_ProceedsFromStockPlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalConsideration" xlink:label="ceco_AdditionalConsideration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateAndOtherMember" xlink:label="us-gaap_CorporateAndOtherMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_FairValueOfFinancialInstrumentsLineItems" xlink:label="ceco_FairValueOfFinancialInstrumentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndOtherAccruedLiabilities" xlink:label="us-gaap_AccountsPayableAndOtherAccruedLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanContributionsByEmployer" xlink:label="us-gaap_DefinedBenefitPlanContributionsByEmployer"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:label="us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CustomerListsAndTradeNameMember" xlink:label="ceco_CustomerListsAndTradeNameMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EuroDenominatedBankGuaranteeMember" xlink:label="ceco_EuroDenominatedBankGuaranteeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionContributions" xlink:label="us-gaap_PensionContributions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent" xlink:label="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal" xlink:label="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AsbestosLitigationExpenses" xlink:label="ceco_AsbestosLitigationExpenses"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_FederalFundsRateMember" xlink:label="ceco_FederalFundsRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_OtherNonInvesteesMember" xlink:label="ceco_OtherNonInvesteesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyManagementsAssessmentAndProcess" xlink:label="us-gaap_LossContingencyManagementsAssessmentAndProcess"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsegmentsDomain" xlink:label="us-gaap_SubsegmentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:label="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived" xlink:label="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntersegmentEliminationMember" xlink:label="us-gaap_IntersegmentEliminationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_StateAndForeignAuthoritiesMember" xlink:label="ceco_StateAndForeignAuthoritiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_LeaseLiabilitiesCurrent" xlink:label="ceco_LeaseLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNetAbstract" xlink:label="us-gaap_InventoryNetAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanInterestCost" xlink:label="us-gaap_DefinedBenefitPlanInterestCost"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CreditAgreementMember" xlink:label="ceco_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain" xlink:label="srt_EquityMethodInvesteeNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AsbestosIssueMember" xlink:label="us-gaap_AsbestosIssueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" xlink:label="us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:label="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWriteDown" xlink:label="us-gaap_InventoryWriteDown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSalesOfLoansNet" xlink:label="us-gaap_GainLossOnSalesOfLoansNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" xlink:label="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompanyReceivedWorkingCapital" xlink:label="ceco_CompanyReceivedWorkingCapital"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AverageCostPerSettledClaim" xlink:label="ceco_AverageCostPerSettledClaim"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodTwoMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock" xlink:label="us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ExecutiveTransitionExpenses" xlink:label="ceco_ExecutiveTransitionExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_VotingInterestInJointVenture" xlink:label="ceco_VotingInterestInJointVenture"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TermDebtMember" xlink:label="ceco_TermDebtMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_RetainageReceivablesOnContractsPeriod" xlink:label="ceco_RetainageReceivablesOnContractsPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToMinorityShareholders" xlink:label="us-gaap_PaymentsToMinorityShareholders"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OpenTaxYear" xlink:label="us-gaap_OpenTaxYear"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncomeTaxesLineItems" xlink:label="ceco_IncomeTaxesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember" xlink:label="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets" xlink:label="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionPlansDefinedBenefitMember" xlink:label="us-gaap_PensionPlansDefinedBenefitMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CertainTradeNamesMember" xlink:label="ceco_CertainTradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock" xlink:label="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterest" xlink:label="us-gaap_MinorityInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TransfersFromIndefiniteLifeClassification" xlink:label="ceco_TransfersFromIndefiniteLifeClassification"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestRevenueExpenseNet" xlink:label="us-gaap_InterestRevenueExpenseNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromRepaymentsOfLinesOfCredit" xlink:label="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:label="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashCurrent" xlink:label="us-gaap_RestrictedCashCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractLiabilityCurrent" xlink:label="ceco_ContractLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CreditFacilityMember" xlink:label="ceco_CreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentExpenditureAdditionToLongLivedAssets" xlink:label="us-gaap_SegmentExpenditureAdditionToLongLivedAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_OwnershipDomain" xlink:label="srt_OwnershipDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnOutFairValue" xlink:label="ceco_EarnOutFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="us-gaap_PayablesAndAccrualsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsNoncurrent" xlink:label="us-gaap_AssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PurchasePrice" xlink:label="ceco_PurchasePrice"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaximumConsolidatedLeverageRatio" xlink:label="ceco_MaximumConsolidatedLeverageRatio"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock" xlink:label="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EffoxFlextorMadderMember" xlink:label="ceco_EffoxFlextorMadderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock" xlink:label="us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidTaxes" xlink:label="us-gaap_PrepaidTaxes"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsLineItems" xlink:label="us-gaap_OtherCommitmentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcess" xlink:label="us-gaap_InventoryWorkInProcess"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_SeniorDebtMember" xlink:label="ceco_SeniorDebtMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentsDisclosureTextBlock" xlink:label="us-gaap_FinancialInstrumentsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_InventoryReserveExpenseBenefit" xlink:label="ceco_InventoryReserveExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityFairValueAdjustment" xlink:label="us-gaap_EquityFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCostsAndOtherAssets" xlink:label="us-gaap_DeferredCostsAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFairValue" xlink:label="us-gaap_DebtInstrumentFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_HoldbackPayble" xlink:label="ceco_HoldbackPayble"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_InstallmentsPaid" xlink:label="ceco_InstallmentsPaid"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" xlink:label="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeAccountsReceivableMember" xlink:label="us-gaap_TradeAccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods" xlink:label="us-gaap_InventoryFinishedGoods"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount" xlink:label="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnOutLiability" xlink:label="ceco_EarnOutLiability"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractReceivableRetainage1" xlink:label="ceco_ContractReceivableRetainage1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CashHeldOutsideDomesticTerritory" xlink:label="ceco_CashHeldOutsideDomesticTerritory"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NotesPayable" xlink:label="us-gaap_NotesPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" xlink:label="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterestOwnershipPercentageByParent" xlink:label="us-gaap_MinorityInterestOwnershipPercentageByParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityMethodInvestmentOwnershipPercentage" xlink:label="us-gaap_EquityMethodInvestmentOwnershipPercentage"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarningsAndDividendsPerShareAbstract" xlink:label="ceco_EarningsAndDividendsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnoutPayments" xlink:label="ceco_EarnoutPayments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsAllOtherInvestmentsAbstract" xlink:label="us-gaap_InvestmentsAllOtherInvestmentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SubsidiariesMember" xlink:label="srt_SubsidiariesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractLiabilitiesRecognizedAsRevenue" xlink:label="ceco_ContractLiabilitiesRecognizedAsRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilities" xlink:label="us-gaap_OtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssets" xlink:label="us-gaap_OtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" xlink:label="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntersubsegmentEliminationsMember" xlink:label="us-gaap_IntersubsegmentEliminationsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ForeignCurrencyTranslationAdjustmentMember" xlink:label="ceco_ForeignCurrencyTranslationAdjustmentMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForProceedsFromInvestments" xlink:label="us-gaap_PaymentsForProceedsFromInvestments"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_NetherlandsFacilityMember" xlink:label="ceco_NetherlandsFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" xlink:label="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:label="us-gaap_BusinessAcquisitionContingentConsiderationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfDebtDiscountPremium" xlink:label="us-gaap_AmortizationOfDebtDiscountPremium"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" xlink:label="us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForOtherCreditLosses" xlink:label="us-gaap_ProvisionForOtherCreditLosses"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFrequencyOfPeriodicPayment" xlink:label="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrentAbstract" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsFairValueAdjustment" xlink:label="us-gaap_AssetsFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="us-gaap_AccountingChangesAndErrorCorrectionsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivableTypeDomain" xlink:label="us-gaap_ReceivableTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetirementPlanTypeAxis" xlink:label="us-gaap_RetirementPlanTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_OwnershipAxis" xlink:label="srt_OwnershipAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditMember" xlink:label="us-gaap_LineOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationIntegrationRelatedCosts" xlink:label="us-gaap_BusinessCombinationIntegrationRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LitigationSettlementAmountAwardedFromOtherParty" xlink:label="us-gaap_LitigationSettlementAmountAwardedFromOtherParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfNetBenefitCostsTableTextBlock" xlink:label="us-gaap_ScheduleOfNetBenefitCostsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodThreeMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodThreeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_NotesPayableCurrent1" xlink:label="ceco_NotesPayableCurrent1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsegmentsAxis" xlink:label="us-gaap_SubsegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidatedEntitiesAxis" xlink:label="srt_ConsolidatedEntitiesAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StandbyLettersOfCreditMember" xlink:label="us-gaap_StandbyLettersOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReportableSubsegmentsMember" xlink:label="us-gaap_ReportableSubsegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsPerBasicShare" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_SeniorSecuredTermLoanMember" xlink:label="ceco_SeniorSecuredTermLoanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncreaseInEstimatedFairValueOfEarnout" xlink:label="ceco_IncreaseInEstimatedFairValueOfEarnout"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers" xlink:label="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodOneMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AmortizationAndEarnoutExpenses" xlink:label="ceco_AmortizationAndEarnoutExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TechnologyMember" xlink:label="ceco_TechnologyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncomeTaxesTable" xlink:label="ceco_IncomeTaxesTable"/>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableGrossCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable, before Allowance for Credit Loss, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableGrossCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_BorrowingsOnRevolvingLineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowings on revolving credit lines</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_BorrowingsOnRevolvingLineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Borrowings On Revolving Line Of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_BorrowingsOnRevolvingLineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Borrowings on revolving line of credit.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Collaborative Arrangement and Arrangement Other than Collaborative</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Collaborative Arrangement and Arrangement Other than Collaborative [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Transition Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Transition Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Defined Benefit Plan Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Defined Benefit Plan Disclosure [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_DeferredConsiderationPaidForAcquisitions_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred consideration paid for acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_DeferredConsiderationPaidForAcquisitions_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Consideration Paid For Acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_DeferredConsiderationPaidForAcquisitions_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Deferred Consideration Paid For Acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_KemcoSystemsCoLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Kemco Systems Co Llc [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_KemcoSystemsCoLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Kemco Systems Co Llc [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NoncontrollingInterestMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Noncontrolling Interest [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NoncontrollingInterestMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Noncontrolling Interest [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contract receivables</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Receivables, Long-Term Contracts or Programs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Receivables, Long-term Contracts or Programs, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Liabilities, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Liabilities, Noncurrent, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Segment Reporting Information By Segment [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Segment Reporting Information, by Segment [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Prepaid expense and other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Increase (Decrease) in Prepaid Expense and Other Assets, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restricted Stock Units [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restricted Stock Units (RSUs) [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization expense of finite life intangibles for 2026</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Receivable Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Receivable Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net sales</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net sales</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer, Excluding Assessed Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_Ds21CoLtdMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">DS21 Co., Ltd.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_Ds21CoLtdMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">DS21 Co., Ltd. [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_Ds21CoLtdMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">DS21 Co., Ltd. [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CompassWaterSolutionsIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Compass Water Solutions, Inc [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CompassWaterSolutionsIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Compass Water Solutions, Inc [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Debt, Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyPendingClaimsNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of claims pending</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyPendingClaimsNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency, Pending Claims, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyPendingClaimsNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Loss Contingency, Pending Claims, Number, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyPendingClaimsNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Loss Contingency, Pending Claims, Number, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Business Acquisitions By Acquisition [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NoncatastrophicEventAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Noncatastrophic Event [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableTradeCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Trade accounts payable, including amounts due to subcontractors</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableTradeCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Payable, Trade, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Billings in excess of costs and estimated earnings on uncompleted contracts</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest Income (Expense), Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Interest Income (Expense), Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net income attributable to CECO Environmental Corp.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Title of Individual</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Title of Individual [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Subsequent Events</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Events [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureTextBlockAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disclosure Text Block [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForPreviousAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Purchase Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForPreviousAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments for Previous Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Restricted stock units issued, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Shares, Issued for Services</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_PaymentsOnFinanceLeasesAndFinancingLiability_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Payments on finance leases and financing liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_PaymentsOnFinanceLeasesAndFinancingLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments On Finance Leases And Financing Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_PaymentsOnFinanceLeasesAndFinancingLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Payments on finance leases and financing liability.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock repurchase and retirement, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchased During Period, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Repurchase of common stock (in shares)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Unfunded liability plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liability, Defined Benefit Pension Plan, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Income (Loss) Attributable to Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net Income (Loss) Attributable to Noncontrolling Interest, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Non-controlling interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Noncontrolling interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Expected return on plan assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Defined Benefit Plan, Expected Return (Loss) on Plan Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Unamortized debt discount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Unamortized Discount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Debt Instrument, Unamortized Discount, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MalvarEngineeringLimitedMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Malvar Engineering Limited [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MalvarEngineeringLimitedMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Malvar Engineering Limited [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MalvarEngineeringLimitedMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Malvar Engineering Limited [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Accounts Notes Loans And Financing Receivable [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Accounts, Notes, Loans and Financing Receivable [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Assets Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueRevenueRecognized1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">EIS revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredRevenueRevenueRecognized1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Revenue, Revenue Recognized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total liabilities and shareholders' equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities and Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred Income Tax Assets, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Income Tax Assets, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Purchase Accounting Adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average fair value of stock options granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Redemption, Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Redemption, Period [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock, shares issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Shares, Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Common Stock, Shares, Issued, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt, Maturity, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility principal payments 2025</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Prepaid expenses and other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Expense and Other Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidatedEntitiesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Consolidated Entities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidatedEntitiesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Consolidated Entities [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Income (Loss) Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Numerator (for basic and diluted earnings per share)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Long-Term Debt Instruments [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Beginning Balance, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Ending Balance, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares, Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated Other Comprehensive Loss [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">AOCI Attributable to Parent [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisitions and Joint Ventures</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtCurrent_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Less: current portion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current portion of debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt, Current Maturities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Long-term Debt, Current Maturities, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Foreign currency translation (loss) gain</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Translation gain (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Foreign currency translation (loss) gain</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt, Maturity, Remainder of Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility principal payments 2023</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income taxes payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Income Taxes Payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Senior Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Subsequent Event [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Capital in Excess of Par Value [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Additional Paid-in Capital [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterials_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Raw materials</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterials_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Raw Materials, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterials_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Inventory, Raw Materials, Gross, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current liabilities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current assets:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable, net allowances</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable, Allowance for Credit Loss, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Provision for credit losses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_CounterpartyNameAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Counterparty Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_CounterpartyNameAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Counterparty Name [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock, par value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Par or Stated Value Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Stockholders' Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentMaturityDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Term loans, year of maturity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentMaturityDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Maturity Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total outstanding borrowings under the Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property, plant and equipment, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Property, Plant and Equipment, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Property, Plant and Equipment, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Property, Plant and Equipment, Net, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Property, Plant and Equipment, Net, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillPurchaseAccountingAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill, Purchase Accounting Adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillPurchaseAccountingAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill, Acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring Charges</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Restructuring Charges, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restructuring expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_WesternAirDuctsLtdMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Western Air Ducts Ltd [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_WesternAirDuctsLtdMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Western Air Ducts Ltd [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Secured Debt, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Secured Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Secured Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Bad debt expense (recoveries)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable, Credit Loss Expense (Reversal)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquired intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Indefinite-Lived Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contingent consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Contingent Consideration, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Contingent Consideration, Liability, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Comprehensive Income [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ScenarioUnspecifiedDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Scenario</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ScenarioUnspecifiedDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Scenario [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TypeOfArrangementAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Collaborative Arrangement and Arrangement Other than Collaborative</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TypeOfArrangementAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Collaborative Arrangement and Arrangement Other than Collaborative [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TreasuryStockCommonShares_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Treasury stock, shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TreasuryStockCommonShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Treasury Stock, Common, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loans, Notes, Trade and Other Receivables Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_PercentageOfEquityHoldInJointVenture_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of equity hold in joint venture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_PercentageOfEquityHoldInJointVenture_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Percentage Of Equity Hold In Joint Venture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_PercentageOfEquityHoldInJointVenture_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Percentage of equity hold in joint venture.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Goodwill [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Pre tax loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income before income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IndustrialProcessSolutionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Industrial Process Solutions Segment [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IndustrialProcessSolutionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Industrial Process Solutions [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IndustrialProcessSolutionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Industrial process solutions member.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Operating Capital [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Changes in operating assets and liabilities, net of acquisitions:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Liabilities [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_BankGuaranteesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Bank Guarantees [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_BankGuaranteesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Bank Guarantees [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_BankGuaranteesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Bank guarantees.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financial Instruments [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Denominator</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding Reconciliation [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Line Of Credit Facility [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Investment, Name [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WarehouseAgreementBorrowings_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Warehouse Agreement Borrowings, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WarehouseAgreementBorrowings_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Warehouse Agreement Borrowings</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WarehouseAgreementBorrowings_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Outstanding borrowing under the joint venture term debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_GeneralRubberLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">General rubber llc .</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_GeneralRubberLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">General Rubber LLC [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Identifiable assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Right-of-Use Asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Right-of-use assets from operating leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Right-of-use assets from operating leases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Line Of Credit Facility [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Liability for uncertain tax positions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liability for Uncertainty in Income Taxes, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party, Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retained Earnings (Accumulated Deficit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Retained Earnings (Accumulated Deficit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Retained Earnings (Accumulated Deficit), Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Retained Earnings (Accumulated Deficit), Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromStockPlans_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash received from employee stock option exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromStockPlans_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Stock Plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Supplemental Cash Flow Information [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash paid during the period for:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalConsideration_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">additional consideration Earn Out</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalConsideration_lbl" xlink:role="http://www.xbrl.org/2003/role/label">additional consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated Loss [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retained Earnings [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CorporateAndOtherMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Corporate and Other [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total shareholders' equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Including Portion Attributable to Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_FairValueOfFinancialInstrumentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Of Financial Instruments [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_FairValueOfFinancialInstrumentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Of Financial Instruments [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_FairValueOfFinancialInstrumentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Fair value of financial instruments.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred income tax liability, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Income Tax Liabilities, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred Income Tax Liabilities, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Minimum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Minimum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Revenues_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Revenues_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Revenues_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Revenues, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ScenarioForecastMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Scenario Forecast [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ScenarioForecastMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Forecast [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income taxes payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Income Taxes, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Component</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Component [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementBusinessSegmentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Segments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementBusinessSegmentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segments [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndOtherAccruedLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Payable and Other Accrued Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndOtherAccruedLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable and accrued expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanContributionsByEmployer_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Defined benefit plan contributions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanContributionsByEmployer_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Defined Benefit Plan, Plan Assets, Contributions by Employer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReceivablesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Receivables [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Adjustments to reconcile net income to net cash provided by (used in) operating activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillForeignCurrencyTranslationGainLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill, foreign currency translation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillForeignCurrencyTranslationGainLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill, Foreign Currency Translation Gain (Loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt instrument, basis spread on variable rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Basis Spread on Variable Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Current Reporting Status</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Current Reporting Status</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock, shares authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Shares Authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CustomerListsAndTradeNameMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer Lists and Tradename [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CustomerListsAndTradeNameMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Lists And Trade Name [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CustomerListsAndTradeNameMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Customer lists and trade name.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Unrealized foreign currency gain (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value adjustment to earnout liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Unrealized Gain (Loss), Foreign Currency Transaction, before Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">ASSETS</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EngineeredSystemsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Engineered Systems Segment [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EngineeredSystemsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Engineered Systems [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EngineeredSystemsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Engineered systems member.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Amortization expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Amortization expense of finite life intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amortization of Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Amortization of Intangible Assets, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BaseRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Base Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BaseRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Base Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerListsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer Lists [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerListsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Lists [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock, $.01 par value; 100,000,000 shares authorized, 34,923,701 and 34,835,293 shares issued and outstanding at June 30, 2024 and December 31, 2023, respectively</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Value, Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Common Stock, Value, Issued, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Common Stock, Value, Issued, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Common Stock, Value, Issued, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Repayments of long-term debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Repayments of Long-Term Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Repayments of Long-term Debt, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income (Loss) from Continuing Operations, Per Diluted Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNoncashIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNoncashIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNoncashIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Noncash Income (Expense)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNoncashIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Noncash Income (Expense), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EuroDenominatedBankGuaranteeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Euro-Denominated Bank Guarantee [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EuroDenominatedBankGuaranteeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Euro Denominated Bank Guarantee [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EuroDenominatedBankGuaranteeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Euro-denominated bank guarantee.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net proceeds from sale of assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Sale of Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Proceeds from Sale of Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accrued expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total accrued expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PensionContributions_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment for Pension Benefits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash, Current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current Fiscal Year End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Current Fiscal Year End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share-based compensation expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Noncash Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Share-based Payment Arrangement, Noncash Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income from operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Income (Loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income from operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Deferred income taxes on undistributed earnings</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Income Tax Expense (Benefit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred Income Tax Expense (Benefit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred income tax benefit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Income tax expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income tax expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Expense (Benefit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income Tax Expense (Benefit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Compensation Cash-Based Arrangements, Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred cash consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Outstanding borrowings, quarterly principal installments payable amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Periodic Payment, Principal</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt, Maturity, Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility principal payments 2027</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Share based compensation arrangement by share based payments award fair value assumptions weighted average expected term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Based Compensation Arrangement By Share Based Payments Award Fair Value Assumptions Weighted Average Expected Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average expected term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AsbestosLitigationExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Asbestos litigation expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AsbestosLitigationExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Asbestos Litigation Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AsbestosLitigationExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Asbestos Litigation Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_FederalFundsRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Federal Funds Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_FederalFundsRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Federal Funds Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_FederalFundsRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Federal Funds Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Recognized share-based compensation awards</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible assets &#8211; finite life, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Intangible assets &#8211; finite life, net at beginning of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Intangible assets &#8211; finite life, net at end of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Finite-Lived Intangible Assets, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net Sales and Income from Operation by Business Segment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Segment Reporting Information, by Segment [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Finite-lived intangible asset, fair value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Indefinite-Lived Intangible Assets (Excluding Goodwill), Fair Value Disclosure</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_OtherNonInvesteesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Other Non Investees [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_OtherNonInvesteesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Non Investees [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Effect of exchange rate changes on cash, cash equivalents and restricted cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyManagementsAssessmentAndProcess_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Assessment regarding Loss contingency impact Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyManagementsAssessmentAndProcess_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency, Management's Assessment and Process</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsegmentsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsegments [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contract Assets and Liabilities [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, off-Balance-Sheet Risks, Disclosure Information [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Nonoperating Income (Expense)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Nonoperating Income (Expense), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other (expense) income, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Tax indemnification received</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lessor, Operating Lease, Indemnification Payment Received</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Events [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other comprehensive income, net of tax:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Goodwill And Other Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule Of Goodwill And Other Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Schedule Of Goodwill And Other Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Options, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntersegmentEliminationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intersegment Eliminations [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntersegmentEliminationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Inter-Segment Elimination [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Accrued Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_StateAndForeignAuthoritiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">State and Foreign Authorities [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_StateAndForeignAuthoritiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">State And Foreign Authorities [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_StateAndForeignAuthoritiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">State and foreign authorities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest Paid, Excluding Capitalized Interest, Operating Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization expense of finite life intangibles for 2028</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization expense of finite life intangibles for 2025</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_LeaseLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-term operating lease liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_LeaseLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lease Liabilities Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_LeaseLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Lease liabilities, current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetirementPlanTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Retirement Plan Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetirementPlanTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retirement Plan Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNetAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Net [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shareholders&#8217; equity:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanInterestCost_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanInterestCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Defined Benefit Plan, Interest Cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Goodwill And Other Intangible Assets [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule Of Goodwill And Other Intangible Assets [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Schedule Of Goodwill And Other Intangible Assets [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Gain on sale of property and equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gain (Loss) on Disposition of Property Plant Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Gain (Loss) on Disposition of Property Plant Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Bank guarantee issuance under bilateral lines and collateral</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cost of sales</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Goods and Services Sold</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cost of Goods and Services Sold, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Earnings per share:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingenciesTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingencies [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Credit agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtWeightedAverageInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted average interest rate on outstanding borrowings</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtWeightedAverageInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt, Weighted Average Interest Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_EquityMethodInvesteeNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Investment, Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Segments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segments [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AsbestosIssueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Asbestos Issue [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Foreign currency adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Foreign Currency Translation Gain (Loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Foreign currency adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_StatementScenarioAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Scenario</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_StatementScenarioAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Scenario [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Unaudited Pro Forma Financial Information</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition, Pro Forma Information [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Interest Rate, Effective Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Interest Rate, Effective Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Noncontrolling interest distribution</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Noncontrolling Interest, Decrease from Distributions to Noncontrolling Interest Holders</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revolving Credit Loan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revolving Credit Facility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Earnings Per Share, Basic, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryWriteDown_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amounts credited to the allowance for obsolete inventory</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryWriteDown_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory Write-down</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments and contingencies (See Note 14)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combinations [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSalesOfLoansNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net sales</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSalesOfLoansNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gain (Loss) on Sales of Loans, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSalesOfLoansNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Gain (Loss) on Sales of Loans, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Statement [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Amortization of net actuarial loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Defined Benefit Plan, Amortization of Gain (Loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party, Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Accounts Payable and Accrued Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Increase (Decrease) in Accounts Payable and Accrued Liabilities, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible assets &#8211; indefinite life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Tradename, beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Tradename, ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Indefinite-Lived Intangible Assets (Excluding Goodwill)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Indefinite-lived Intangible Assets (Excluding Goodwill), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CompanyReceivedWorkingCapital_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Company Received Working Capital</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CompanyReceivedWorkingCapital_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Company Received Working Capital</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Contract Assets and Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value adjustment to earnout liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retirement Benefits [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AverageCostPerSettledClaim_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Average cost per settled claim excluding legal fees</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AverageCostPerSettledClaim_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Average Cost Per Settled Claim</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AverageCostPerSettledClaim_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">The weighted average cost per settled claim based on the number of claims settled and the amount paid in aggregate for asbestos related claims.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statistical Measurement [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash provided by (used in) operating activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Operating Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statistical Measurement [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments and Contingencies - Legal Matters</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts, Notes, Loans and Financing Receivable [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts, Notes, Loans and Financing Receivable [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodTwoMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Redemption, Through June 2023 [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodTwoMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Redemption, Period Two [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contract Assets and Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Regulatory Assets and Liabilities [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ExecutiveTransitionExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Executive transition expenses.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ExecutiveTransitionExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Executive Transition Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ExecutiveTransitionExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Executive transition expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Earnings Per Share, Diluted, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_VotingInterestInJointVenture_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Voting Interest In Joint Venture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_VotingInterestInJointVenture_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Voting interest in joint venture.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_VotingInterestInJointVenture_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Voting interest in joint venture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TermDebtMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Term Debt [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TermDebtMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Term Debt [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TermDebtMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Term debt.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_RetainageReceivablesOnContractsPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Retainage receivables on contracts period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_RetainageReceivablesOnContractsPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retainage Receivables On Contracts Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_RetainageReceivablesOnContractsPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Retainage receivables on contracts period.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_RetainageReceivablesOnContractsPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Account receivable, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToMinorityShareholders_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Noncontrolling Interests</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToMinorityShareholders_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Noncontrolling interest distributions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OpenTaxYear_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Open tax years</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OpenTaxYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Open Tax Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncomeTaxesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Taxes [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncomeTaxesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Taxes [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncomeTaxesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Income taxes.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Weighted Average Volatility Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average volatility rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Health Care Plan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Pension, Postretirement and Supplemental Plans [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred charges and other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase Decrease In Deferred Charges And Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Increase (decrease) in deferred charges and other assets.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Capital in excess of par value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Additional Paid in Capital, Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Additional Paid in Capital, Common Stock, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Additional Paid in Capital, Common Stock, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PensionPlansDefinedBenefitMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Pension Plan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PensionPlansDefinedBenefitMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Pension Plan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CertainTradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Certain Tradenames [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CertainTradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Certain Trade Names [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CertainTradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Certain trade names.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">New Accounting Standards Not Yet Adopted Policy [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">New accounting standards not yet adopted policy.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounting Standards to be Adopted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Common stock repurchase</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock repurchase</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments for Repurchase of Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Stockholders' Equity Attributable to Noncontrolling Interest, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Stockholders' Equity Attributable to Noncontrolling Interest, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Stockholders' Equity Attributable to Noncontrolling Interest, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-controlling interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite-Lived Intangible Assets, Major Class Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Exercise of stock options, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities and Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Environmental Integrated Solutions [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Environmental Integrated Solutions [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Environmental Integrated Solutions.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Interactive Data Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Interactive Data Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TransfersFromIndefiniteLifeClassification_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Transfers from indefinite life classification</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TransfersFromIndefiniteLifeClassification_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Transfers From Indefinite Life Classification</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TransfersFromIndefiniteLifeClassification_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Transfers from indefinite life classification.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Current liabilities assumed</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization expense of finite life intangibles for 2027</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestRevenueExpenseNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestRevenueExpenseNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest Revenue (Expense), Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestRevenueExpenseNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Interest Revenue (Expense), Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Repayments on revolving credit lines</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from (Repayments of) Lines of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Proceeds from (Repayments of) Lines of Credit, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of restricted stock awards granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Components</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Components [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Accounts Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts Receivable, Net Current Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Other Operating Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Increase (Decrease) in Other Operating Liabilities, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Pension and Employee Benefit Plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retirement Benefits [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">New Financial Accounting Pronouncements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Standards Update and Change in Accounting Principle [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryValuationReserves_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Obsolescence allowance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryValuationReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory Valuation Reserves</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryValuationReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Inventory Valuation Reserves, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryValuationReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Inventory Valuation Reserves, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Goodwill, beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Goodwill, ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Goodwill, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Tradename, foreign currency translation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Indefinite-Lived Intangible Assets, Foreign Currency Translation Gain (Loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedCashCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restricted cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedCashCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restricted Cash, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Cash Flows [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_DirectorMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Non-Employee Director [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_DirectorMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Director [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxAuthorityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Tax Authority</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxAuthorityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Authority [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated other comprehensive loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accumulated Other Comprehensive Income (Loss), Net of Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accumulated Other Comprehensive Income (Loss), Net of Tax, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Segment Reporting Information [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting Information [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Gross profit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gross Profit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock, par value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Par or Stated Value Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Share Based Compensation Arrangements By Share Based Payment Award [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract Liability Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Contract liability current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contract liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Maximum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Facility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Credit facility.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidationItemsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Consolidation Items</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidationItemsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Consolidation Items [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentExpenditureAdditionToLongLivedAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property and equipment additions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentExpenditureAdditionToLongLivedAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment, Expenditure, Addition to Long-Lived Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basis of Reporting for Consolidated Financial Statements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShortTermDebtTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short-Term Debt, Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_OwnershipDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Ownership [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net (decrease) increase in cash, cash equivalents and restricted cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarnOutFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Earn out, Fair value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarnOutFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earn out, Fair value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PayablesAndAccrualsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payables and Accruals [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Assets, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Assets, Noncurrent, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_PurchasePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Purchase Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_PurchasePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Purchase Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MaximumConsolidatedLeverageRatio_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum consolidated leverage ratio</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MaximumConsolidatedLeverageRatio_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Maximum Consolidated Leverage Ratio</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MaximumConsolidatedLeverageRatio_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Maximum consolidated leverage ratio.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock equivalents arising from stock options and restricted stock awards</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Incremental Common Shares Attributable to Share-based Payment Arrangements, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accrued Liabilities, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingSegmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating Segments [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingSegmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Segments [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intra-Segment and Inter-Segment Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intra Segment And Inter Segment Elimination By Revenue Table [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Intra segment and inter segment elimination by revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Inventory, Current [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business Segment Information</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EffoxFlextorMadderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Effox Flextor Madder [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EffoxFlextorMadderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Effox Flextor Madder [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EffoxFlextorMadderMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">EFM JV [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Inventories, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from operating activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidationItemsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Consolidation Items</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidationItemsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Consolidation Items [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment, Reconciliation of Other Items from Segments to Consolidated [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Proceeds from Issuance of Long-term Debt, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Issuance of Long-Term Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Borrowing on long-term debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business Acquisition [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Basic weighted-average shares outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Weighted Average Number of Shares Outstanding, Basic, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidTaxes_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Prepaid income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidTaxes_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherCommitmentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Commitments [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryWorkInProcess_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Work in process</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryWorkInProcess_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Work in Process, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from financing activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Financing Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statement [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Document Fiscal Period Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Fiscal Period Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_JointVentureAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Joint Venture Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_JointVentureAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Joint venture agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_JointVentureAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Joint Venture Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_SeniorDebtMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Senior Debt [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_SeniorDebtMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Senior Debt [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_SeniorDebtMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Senior Debt [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FinancialInstrumentsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Financial Instruments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FinancialInstrumentsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financial Instruments Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net assets acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net assets acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_InventoryReserveExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Inventory reserve expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_InventoryReserveExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory Reserve Expense Benefit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_InventoryReserveExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Inventory reserve expense benefit.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityFairValueAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Fair Value Adjustment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityFairValueAdjustment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Fair value of noncontrolling interest equity (see Note 14)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityFairValueAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value of noncontrolling interest equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCostsAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred charges and other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCostsAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Costs and Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsOfFinancingCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments of Financing Costs, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsOfFinancingCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments of Financing Costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsOfFinancingCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred financing fees paid</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsOfFinancingCosts_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred financing fees paid</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value of debt issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Fair Value Disclosure</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Debt Instrument, Fair Value Disclosure, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Anti-dilutive options and restricted stock units outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate principal amount outstanding under the credit facilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Letters of Credit Outstanding, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable, net allowances of $6,582 and $6,460</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accounts receivable, net allowances</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable, after Allowance for Credit Loss, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total accounts receivable, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_HoldbackPayble_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Holdback Payble</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_HoldbackPayble_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Holdback Payble</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_HoldbackPayble_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Holdback Payble</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalents, at Carrying Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cash and Cash Equivalents, at Carrying Value, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Cash and Cash Equivalents, at Carrying Value, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Cash and Cash Equivalents, at Carrying Value, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Common stock repurchase and retirement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock repurchase</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchased During Period, Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Repurchase of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Common Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Common Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_InstallmentsPaid_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Installments Paid</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_InstallmentsPaid_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Installments Paid</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Costs and estimated earnings in excess of billings on uncompleted contracts</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract With Customer Asset Increase Decrease In Cost In Excess Of Billing On Uncompleted Contract</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Contract with customer asset, increase decrease in cost in excess of billing on uncompleted contract.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeAccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Trade Accounts Receivable [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeAccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trade Accounts Receivable [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property and equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoods_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finished goods</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoods_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Inventory, Finished Goods, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoods_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Inventory, Finished Goods, Gross, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Unused credit availability under credit facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Unused Borrowing Capacity, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Table Text Block [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Debt [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CoverAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cover [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Selling and administrative expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Selling, General and Administrative Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Selling, General and Administrative Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Fiscal Year Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Fiscal Year Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued warranty</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product Warranty Accrual, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarnOutLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Earn Out Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarnOutLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earn Out Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarnOutLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Earn-out liability.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractReceivableRetainage1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amount billed but not received under retainage provisions in contracts</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractReceivableRetainage1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract Receivable Retainage1</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractReceivableRetainage1_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Contract receivable retainage1.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Taxes Paid, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income Taxes Paid, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average fair value of restricted stock unit granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Earnout payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Earnout payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Additional payments of contingent consideration related to acquisitions operating activities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Additional Payments of Contingent Consideration Related to Acquisitions Operating Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Additional Payments of Contingent Consideration Related to Acquisitions Financing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Additional Payments of Contingent Consideration Related to Acquisitions Financing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Earnout payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Earnout payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proceeds from employee stock purchase plan and exercise of stock options</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Proceeds, Issuance of Shares, Share-based Payment Arrangement, Including Option Exercised, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DomesticCountryMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Federal Authorities [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DomesticCountryMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Domestic Tax Authority [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Finite Lived Intangible Assets Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets Amortization Expense [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounting Standards Adopted in Fiscal 2024</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock, shares issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Shares Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Preferred Stock, Shares Issued, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock, shares authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Shares Authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CashHeldOutsideDomesticTerritory_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash held outside United States, principally in Netherlands, United Kingdom, China, and Canada</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CashHeldOutsideDomesticTerritory_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Held Outside Domestic Territory</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_CashHeldOutsideDomesticTerritory_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Cash held outside domestic territory.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Finite Lived Intangible Assets [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NotesPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Notes Payable, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NotesPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Notes Payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business Acquisition, Acquiree</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition, Acquiree [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FinancialInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financial Instrument [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted average number of common shares outstanding:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Diluted [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Exercise of stock options</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Value, Stock Options Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Option exercised, intrinsic value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition of equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition, Percentage of Voting Interests Acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Accrued Liabilities [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Accrued Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Billings in excess of costs and estimated earnings on uncompleted contracts</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract With Customer Liability Increase Decrease In Billing In Excess Of Cost Of Earnings</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Contract with customer, liability increase decrease in billing in excess of cost of earnings.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterestOwnershipPercentageByParent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Subsidiary, Ownership Percentage, Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MinorityInterestOwnershipPercentageByParent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsidiary, Ownership Percentage, Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Technology [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Technology-Based Intangible Assets [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityMethodInvestmentOwnershipPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of equity method investment in joint venture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityMethodInvestmentOwnershipPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Method Investment, Ownership Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarningsAndDividendsPerShareAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings And Dividends Per Share [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarningsAndDividendsPerShareAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Earnings and dividends per share.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarnoutPayments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Earnout Payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarnoutPayments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnout Payments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_EarnoutPayments_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Earnout payments.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InvestmentsAllOtherInvestmentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Investments, All Other Investments [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_SubsidiariesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Foreign Subsidiaries [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_SubsidiariesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsidiaries [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Variable Rate [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Indefinite-Lived Intangible Assets, Purchase Accounting Adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Tradename, Acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Securities Act File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractLiabilitiesRecognizedAsRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Contract Liabilities Recognized As Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ContractLiabilitiesRecognizedAsRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract Liabilities Recognized As Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Liabilities, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Other liabilities Assumed</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Total debt, less current portion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt, Excluding Current Maturities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Long-term Debt, Excluding Current Maturities, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt, less current portion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TranscendSolutionMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Transcend Solution [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TranscendSolutionMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Transcend Solution [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TranscendSolutionMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Transcend Solution [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Assets, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accounts Payable, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Payable, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill / Tradename</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Intangible Assets and Goodwill [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt, Maturity, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility principal payments 2024</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Defined Benefit Plans Disclosures [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Defined Benefit Plans Disclosures [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock, $.01 par value; 10,000 shares authorized, none issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Value, Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Preferred Stock, Value, Issued, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Preferred Stock, Value, Issued, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Preferred Stock, Value, Issued, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Small Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Small Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Shell Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Shell Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_TitleOfIndividualAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Title of Individual</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_TitleOfIndividualAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Title of Individual [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntersubsegmentEliminationsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intersubsegment Eliminations [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntersubsegmentEliminationsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intra-Segment Sales [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Earnings per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ForeignCurrencyTranslationAdjustmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Foreign Currency Adjustments [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ForeignCurrencyTranslationAdjustmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Foreign Currency Translation Adjustment [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ForeignCurrencyTranslationAdjustmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Foreign currency translation adjustment.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForProceedsFromInvestments_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Net cash received (paid) for acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForProceedsFromInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments for (Proceeds from) Investments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForProceedsFromInvestments_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments for (Proceeds from) Investments, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Weighted Average Risk-Free Interest Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Weighted Average Risk-Free Interest Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average risk free interest rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NetherlandsFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Netherlands Facility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NetherlandsFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Netherlands Facility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NetherlandsFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Netherlands facility.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible - finite life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Fair Value Of Financial Instruments [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule Of Fair Value Of Financial Instruments [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Schedule Of Fair Value Of Financial Instruments [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionContingentConsiderationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business Acquisition Contingent Consideration [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionContingentConsiderationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition, Contingent Consideration [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Finite-Lived Intangible Assets, Gross, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Debt, Maturity, Year Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility principal payments 2026</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfDebtDiscountPremium_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt discount amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfDebtDiscountPremium_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amortization of Debt Discount (Premium)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Tradename, Impairment charge</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Impairment of Intangible Assets, Indefinite-Lived (Excluding Goodwill)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProfitLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net income</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProfitLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Income (Loss), Including Portion Attributable to Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProfitLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net income (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProfitLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net income</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Tax Assets, Deferred Income</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProvisionForOtherCreditLosses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Provision for Other Credit Losses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProvisionForOtherCreditLosses_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Provision for credit losses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MaderHoldingsLPMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Mader Holdings L P [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MaderHoldingsLPMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Mader holdings.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_MaderHoldingsLPMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Mader Holdings L.P. [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Frequency of periodic payment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Frequency of Periodic Payment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationDepletionAndAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Depreciation and amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationDepletionAndAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Depreciation, Depletion and Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DepreciationDepletionAndAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Depreciation, Depletion and Amortization, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Asset, after Allowance for Credit Loss, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share based compensation earned</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible Assets - Finite Life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Percent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Percent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsFairValueAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsFairValueAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Fair Value Adjustment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountingChangesAndErrorCorrectionsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Changes and Error Corrections [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from investing activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Investing Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Bank guarantee agreement outstanding amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Line of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Long-term Line of Credit, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revolving credit facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Inventories</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Increase (Decrease) in Inventories, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NoncurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Noncurrent Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NoncurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Lived Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReceivableTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReceivableTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Receivable [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization expense of finite life intangibles for 2024</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Purchase of outstanding shares of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchase Program, Remaining Authorized Repurchase Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common Stock, shares outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Shares, Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Common Stock, Shares, Outstanding, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Common Stock, Shares, Outstanding, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share-Based Compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Accounts Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetirementPlanTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Retirement Plan Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetirementPlanTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retirement Plan Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_OwnershipAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Ownership [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Line Of Credit [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NoncatastrophicEventDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Noncatastrophic Event [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationIntegrationRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition and integration expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationIntegrationRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Integration Related Costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LitigationSettlementAmountAwardedFromOtherParty_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cumulative settlement payments for cases involving asbestos-related claims</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LitigationSettlementAmountAwardedFromOtherParty_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Litigation Settlement, Amount Awarded from Other Party</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash used in investing activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Investing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Quarterly Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Quarterly Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfNetBenefitCostsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Components of Pension and Employee Benefit Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfNetBenefitCostsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Net Benefit Costs [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Counterparty Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Counterparty Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill and Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill and Intangible Assets Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash (used in) provided by financing activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Cash Provided by (Used in) Financing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Redemption, Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Redemption, Period [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Filer Category</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Filer Category</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_VariableRateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Variable Rate [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Tradename [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trade Names [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodThreeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Redemption, Thereafter [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodThreeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Redemption, Period Three [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NotesPayableCurrent1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Notes payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NotesPayableCurrent1_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Notes Payable Current is the part of Total Debt</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_NotesPayableCurrent1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Notes Payable Current1</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Intangible assets, Useful Life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible assets, Useful Life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Useful Life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total CECO shareholders' equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Stockholders' Equity Attributable to Parent, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Stockholders' Equity Attributable to Parent, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsegmentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsegments [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidatedEntitiesAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Consolidated Entities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ConsolidatedEntitiesAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Consolidated Entities [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net income attributable to CECO Environmental Corp.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestExpense_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Interest expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Interest Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StandbyLettersOfCreditMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Letters of Credit [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StandbyLettersOfCreditMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Standby Letters of Credit [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Costs and estimated earnings in excess of billings on uncompleted contracts</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Asset, after Allowance for Credit Loss, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Contract with Customer, Asset, after Allowance for Credit Loss, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ReportableSubsegmentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Reportable Subsegments [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred tax liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Financial Position [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share based compensation earned, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Shares Issued, Shares, Share-based Payment Arrangement, after Forfeiture, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Diluted weighted-average shares outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Effective income tax rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Effective Income Tax Rate Reconciliation, Percent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Effective Income Tax Rate Reconciliation, Percent, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income (Loss) from Continuing Operations, Per Basic Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income (Loss) from Continuing Operations, Per Outstanding Share, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net periodic benefit cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Defined Benefit Plan, Net Periodic Benefit Cost (Credit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total assets acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total assets acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_SeniorSecuredTermLoanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Term Loan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_SeniorSecuredTermLoanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Senior Secured Term Loan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_SeniorSecuredTermLoanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Senior secured term loan.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restricted stock units issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Restricted stock units issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Value, Issued for Services</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncreaseInEstimatedFairValueOfEarnout_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Increase in estimated fair value of earnout</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncreaseInEstimatedFairValueOfEarnout_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase In Estimated Fair Value Of Earnout</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncreaseInEstimatedFairValueOfEarnout_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Increase in estimated fair value of earnout.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite-Lived Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Tradename, transfers to finite life classification</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Indefinite Lived Intangible Assets Excluding Goodwill During Period Transfers</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Indefinite lived intangible assets excluding goodwill during period transfers.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Shares Outstanding for Calculation of Earnings Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxAuthorityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Tax Authority</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxAuthorityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Authority [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodOneMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument, Redemption, Period One [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodOneMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Debt Instrument, Redemption, Through September 2025 [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Business Acquisitions, by Acquisition [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Comprehensive income</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Acquisitions of property and equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments to Acquire Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AmortizationAndEarnoutExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Amortization and earnout expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AmortizationAndEarnoutExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amortization and earnout expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_AmortizationAndEarnoutExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization and earnout expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Compensation and related benefits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Employee-related Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Employee-related Liabilities, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Acquisition [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Cash, cash equivalents and restricted cash at beginning of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Cash, cash equivalents and restricted cash at end of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TechnologyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Technology [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_TechnologyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Technology [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite-Lived Intangible Assets by Major Class</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncomeTaxesTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Taxes [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncomeTaxesTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Taxes [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ceco_IncomeTaxesTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Income Taxes [Table]</link:label>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableGrossCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_BorrowingsOnRevolvingLineOfCredit" xlink:to="ceco_BorrowingsOnRevolvingLineOfCredit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanDisclosureLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_DeferredConsiderationPaidForAcquisitions" xlink:to="ceco_DeferredConsiderationPaidForAcquisitions_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_KemcoSystemsCoLlcMember" xlink:to="ceco_KemcoSystemsCoLlcMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncontrollingInterestMember" xlink:to="us-gaap_NoncontrollingInterestMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:to="us-gaap_ReceivablesLongTermContractsOrPrograms_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherLiabilitiesNoncurrent" xlink:to="us-gaap_OtherLiabilitiesNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:to="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_Ds21CoLtdMember" xlink:to="ceco_Ds21CoLtdMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_CompassWaterSolutionsIncMember" xlink:to="ceco_CompassWaterSolutionsIncMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyPendingClaimsNumber" xlink:to="us-gaap_LossContingencyPendingClaimsNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableTradeCurrent" xlink:to="us-gaap_AccountsPayableTradeCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeExpenseNet" xlink:to="us-gaap_InterestIncomeExpenseNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureTextBlockAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForPreviousAcquisition" xlink:to="us-gaap_PaymentsForPreviousAcquisition_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:to="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_PaymentsOnFinanceLeasesAndFinancingLiability" xlink:to="ceco_PaymentsOnFinanceLeasesAndFinancingLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent" xlink:to="us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:to="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" xlink:to="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentUnamortizedDiscount" xlink:to="us-gaap_DebtInstrumentUnamortizedDiscount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_MalvarEngineeringLimitedMember" xlink:to="ceco_MalvarEngineeringLimitedMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueRevenueRecognized1" xlink:to="us-gaap_DeferredRevenueRevenueRecognized1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" xlink:to="us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodAxis" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidatedEntitiesDomain" xlink:to="srt_ConsolidatedEntitiesDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAbstract" xlink:to="us-gaap_NetIncomeLossAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesOutstanding" xlink:to="us-gaap_SharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtCurrent" xlink:to="us-gaap_LongTermDebtCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:to="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterials" xlink:to="us-gaap_InventoryRawMaterials_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_CounterpartyNameAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentMaturityDate" xlink:to="us-gaap_DebtInstrumentMaturityDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebt_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:to="us-gaap_GoodwillPurchaseAccountingAdjustments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCharges" xlink:to="us-gaap_RestructuringCharges_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_WesternAirDuctsLtdMember" xlink:to="ceco_WesternAirDuctsLtdMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SecuredDebt" xlink:to="us-gaap_SecuredDebt_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioUnspecifiedDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_TypeOfArrangementAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockCommonShares" xlink:to="us-gaap_TreasuryStockCommonShares_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_PercentageOfEquityHoldInJointVenture" xlink:to="ceco_PercentageOfEquityHoldInJointVenture_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_IndustrialProcessSolutionsMember" xlink:to="ceco_IndustrialProcessSolutionsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesMember" xlink:to="us-gaap_AccruedLiabilitiesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_BankGuaranteesMember" xlink:to="ceco_BankGuaranteesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_LineOfCreditFacilityTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:to="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WarehouseAgreementBorrowings" xlink:to="us-gaap_WarehouseAgreementBorrowings_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_GeneralRubberLlcMember" xlink:to="ceco_GeneralRubberLlcMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="us-gaap_RelatedPartyDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockPlans" xlink:to="us-gaap_ProceedsFromStockPlans_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_AdditionalConsideration" xlink:to="ceco_AdditionalConsideration_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CorporateAndOtherMember" xlink:to="us-gaap_CorporateAndOtherMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_FairValueOfFinancialInstrumentsLineItems" xlink:to="ceco_FairValueOfFinancialInstrumentsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Revenues" xlink:to="us-gaap_Revenues_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScenarioForecastMember" xlink:to="srt_ScenarioForecastMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_StatementBusinessSegmentsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAndOtherAccruedLiabilities" xlink:to="us-gaap_AccountsPayableAndOtherAccruedLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanContributionsByEmployer" xlink:to="us-gaap_DefinedBenefitPlanContributionsByEmployer_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesAbstract" xlink:to="us-gaap_ReceivablesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:to="us-gaap_GoodwillForeignCurrencyTranslationGainLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_CustomerListsAndTradeNameMember" xlink:to="ceco_CustomerListsAndTradeNameMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_EngineeredSystemsMember" xlink:to="ceco_EngineeredSystemsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BaseRateMember" xlink:to="us-gaap_BaseRateMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerListsMember" xlink:to="us-gaap_CustomerListsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLongTermDebt" xlink:to="us-gaap_RepaymentsOfLongTermDebt_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:to="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncashIncomeExpense" xlink:to="us-gaap_OtherNoncashIncomeExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_EuroDenominatedBankGuaranteeMember" xlink:to="ceco_EuroDenominatedBankGuaranteeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PensionContributions" xlink:to="us-gaap_PensionContributions_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent" xlink:to="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal" xlink:to="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm" xlink:to="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_AsbestosLitigationExpenses" xlink:to="ceco_AsbestosLitigationExpenses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_FederalFundsRateMember" xlink:to="ceco_FederalFundsRateMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_OtherNonInvesteesMember" xlink:to="ceco_OtherNonInvesteesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyManagementsAssessmentAndProcess" xlink:to="us-gaap_LossContingencyManagementsAssessmentAndProcess_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsegmentsDomain" xlink:to="us-gaap_SubsegmentsDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived" xlink:to="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntersegmentEliminationMember" xlink:to="us-gaap_IntersegmentEliminationMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_StateAndForeignAuthoritiesMember" xlink:to="ceco_StateAndForeignAuthoritiesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_LeaseLiabilitiesCurrent" xlink:to="ceco_LeaseLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="us-gaap_RetirementPlanTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNetAbstract" xlink:to="us-gaap_InventoryNetAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanInterestCost" xlink:to="us-gaap_DefinedBenefitPlanInterestCost_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" xlink:to="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_LossContingenciesTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_CreditAgreementMember" xlink:to="ceco_CreditAgreementMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtWeightedAverageInterestRate" xlink:to="us-gaap_DebtWeightedAverageInterestRate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_EquityMethodInvesteeNameDomain" xlink:to="srt_EquityMethodInvesteeNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentDomain" xlink:to="us-gaap_SegmentDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AsbestosIssueMember" xlink:to="us-gaap_AsbestosIssueMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" xlink:to="us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_StatementScenarioAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:to="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevolvingCreditFacilityMember" xlink:to="us-gaap_RevolvingCreditFacilityMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryWriteDown" xlink:to="us-gaap_InventoryWriteDown_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_BusinessCombinationsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnSalesOfLoansNet" xlink:to="us-gaap_GainLossOnSalesOfLoansNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" xlink:to="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_CompanyReceivedWorkingCapital" xlink:to="ceco_CompanyReceivedWorkingCapital_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_AverageCostPerSettledClaim" xlink:to="ceco_AverageCostPerSettledClaim_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AccountsNotesAndLoansReceivableLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodTwoMember" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodTwoMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock" xlink:to="us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ExecutiveTransitionExpenses" xlink:to="ceco_ExecutiveTransitionExpenses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_VotingInterestInJointVenture" xlink:to="ceco_VotingInterestInJointVenture_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_TermDebtMember" xlink:to="ceco_TermDebtMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_RetainageReceivablesOnContractsPeriod" xlink:to="ceco_RetainageReceivablesOnContractsPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToMinorityShareholders" xlink:to="us-gaap_PaymentsToMinorityShareholders_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OpenTaxYear" xlink:to="us-gaap_OpenTaxYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="ceco_IncomeTaxesLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember" xlink:to="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets" xlink:to="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PensionPlansDefinedBenefitMember" xlink:to="us-gaap_PensionPlansDefinedBenefitMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_CertainTradeNamesMember" xlink:to="ceco_CertainTradeNamesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock" xlink:to="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MinorityInterest" xlink:to="us-gaap_MinorityInterest_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_EnvironmentalIntegratedSolutionsMember" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_TransfersFromIndefiniteLifeClassification" xlink:to="ceco_TransfersFromIndefiniteLifeClassification_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestRevenueExpenseNet" xlink:to="us-gaap_InterestRevenueExpenseNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit" xlink:to="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:to="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedCashCurrent" xlink:to="us-gaap_RestrictedCashCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_DirectorMember" xlink:to="srt_DirectorMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_IncomeTaxAuthorityDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingInformationLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ContractLiabilityCurrent" xlink:to="ceco_ContractLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_CreditFacilityMember" xlink:to="ceco_CreditFacilityMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidationItemsDomain" xlink:to="srt_ConsolidationItemsDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentExpenditureAdditionToLongLivedAssets" xlink:to="us-gaap_SegmentExpenditureAdditionToLongLivedAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_ShortTermDebtTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_OwnershipDomain" xlink:to="srt_OwnershipDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_EarnOutFairValue" xlink:to="ceco_EarnOutFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_PayablesAndAccrualsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsNoncurrent" xlink:to="us-gaap_AssetsNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_PurchasePrice" xlink:to="ceco_PurchasePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_MaximumConsolidatedLeverageRatio" xlink:to="ceco_MaximumConsolidatedLeverageRatio_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingSegmentsMember" xlink:to="us-gaap_OperatingSegmentsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock" xlink:to="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_EffoxFlextorMadderMember" xlink:to="ceco_EffoxFlextorMadderMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock" xlink:to="us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidTaxes" xlink:to="us-gaap_PrepaidTaxes_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_OtherCommitmentsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryWorkInProcess" xlink:to="us-gaap_InventoryWorkInProcess_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_JointVentureAgreementMember" xlink:to="ceco_JointVentureAgreementMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_SeniorDebtMember" xlink:to="ceco_SeniorDebtMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinancialInstrumentsDisclosureTextBlock" xlink:to="us-gaap_FinancialInstrumentsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_InventoryReserveExpenseBenefit" xlink:to="ceco_InventoryReserveExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityFairValueAdjustment" xlink:to="us-gaap_EquityFairValueAdjustment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCostsAndOtherAssets" xlink:to="us-gaap_DeferredCostsAndOtherAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsOfFinancingCosts" xlink:to="us-gaap_PaymentsOfFinancingCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentFairValue" xlink:to="us-gaap_DebtInstrumentFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="us-gaap_SubsequentEventLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LettersOfCreditOutstandingAmount" xlink:to="us-gaap_LettersOfCreditOutstandingAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_HoldbackPayble" xlink:to="ceco_HoldbackPayble_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodValue" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_InstallmentsPaid" xlink:to="ceco_InstallmentsPaid_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" xlink:to="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeAccountsReceivableMember" xlink:to="us-gaap_TradeAccountsReceivableMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoods" xlink:to="us-gaap_InventoryFinishedGoods_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount" xlink:to="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_TableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDebtTableTextBlock" xlink:to="us-gaap_ScheduleOfDebtTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:to="us-gaap_ProductWarrantyAccrualClassifiedCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_EarnOutLiability" xlink:to="ceco_EarnOutLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ContractReceivableRetainage1" xlink:to="ceco_ContractReceivableRetainage1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" xlink:to="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" xlink:to="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:to="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_CashHeldOutsideDomesticTerritory" xlink:to="ceco_CashHeldOutsideDomesticTerritory_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NotesPayable" xlink:to="us-gaap_NotesPayable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_FinancialInstrumentAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" xlink:to="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MinorityInterestOwnershipPercentageByParent" xlink:to="us-gaap_MinorityInterestOwnershipPercentageByParent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:to="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityMethodInvestmentOwnershipPercentage" xlink:to="us-gaap_EquityMethodInvestmentOwnershipPercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_EarningsAndDividendsPerShareAbstract" xlink:to="ceco_EarningsAndDividendsPerShareAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_EarnoutPayments" xlink:to="ceco_EarnoutPayments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentsAllOtherInvestmentsAbstract" xlink:to="us-gaap_InvestmentsAllOtherInvestmentsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_SubsidiariesMember" xlink:to="srt_SubsidiariesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ContractLiabilitiesRecognizedAsRevenue" xlink:to="ceco_ContractLiabilitiesRecognizedAsRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherLiabilities" xlink:to="us-gaap_OtherLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtNoncurrent" xlink:to="us-gaap_LongTermDebtNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_TranscendSolutionMember" xlink:to="ceco_TranscendSolutionMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssets" xlink:to="us-gaap_OtherAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:to="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" xlink:to="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntersubsegmentEliminationsMember" xlink:to="us-gaap_IntersubsegmentEliminationsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ForeignCurrencyTranslationAdjustmentMember" xlink:to="ceco_ForeignCurrencyTranslationAdjustmentMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForProceedsFromInvestments" xlink:to="us-gaap_PaymentsForProceedsFromInvestments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate" xlink:to="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_NetherlandsFacilityMember" xlink:to="ceco_NetherlandsFacilityMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" xlink:to="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessAcquisitionContingentConsiderationLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfDebtDiscountPremium" xlink:to="us-gaap_AmortizationOfDebtDiscountPremium_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" xlink:to="us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProfitLoss" xlink:to="us-gaap_ProfitLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsDeferredIncome" xlink:to="us-gaap_DeferredTaxAssetsDeferredIncome_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForOtherCreditLosses" xlink:to="us-gaap_ProvisionForOtherCreditLosses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_MaderHoldingsLPMember" xlink:to="ceco_MaderHoldingsLPMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment" xlink:to="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationDepletionAndAmortization" xlink:to="us-gaap_DepreciationDepletionAndAmortization_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNetCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsFairValueAdjustment" xlink:to="us-gaap_AssetsFairValueAdjustment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:to="us-gaap_AccountingChangesAndErrorCorrectionsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCredit" xlink:to="us-gaap_LineOfCredit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncurrentAssets" xlink:to="us-gaap_NoncurrentAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivableTypeDomain" xlink:to="us-gaap_ReceivableTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_OwnershipAxis" xlink:to="srt_OwnershipAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditMember" xlink:to="us-gaap_LineOfCreditMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncatastrophicEventDomain" xlink:to="us-gaap_NoncatastrophicEventDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationIntegrationRelatedCosts" xlink:to="us-gaap_BusinessCombinationIntegrationRelatedCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LitigationSettlementAmountAwardedFromOtherParty" xlink:to="us-gaap_LitigationSettlementAmountAwardedFromOtherParty_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfNetBenefitCostsTableTextBlock" xlink:to="us-gaap_ScheduleOfNetBenefitCostsTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeNamesMember" xlink:to="us-gaap_TradeNamesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodThreeMember" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodThreeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_NotesPayableCurrent1" xlink:to="ceco_NotesPayableCurrent1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsegmentsAxis" xlink:to="us-gaap_SubsegmentsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ConsolidatedEntitiesAxis" xlink:to="srt_ConsolidatedEntitiesAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StandbyLettersOfCreditMember" xlink:to="us-gaap_StandbyLettersOfCreditMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReportableSubsegmentsMember" xlink:to="us-gaap_ReportableSubsegmentsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare" xlink:to="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_SeniorSecuredTermLoanMember" xlink:to="ceco_SeniorSecuredTermLoanMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:to="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_IncreaseInEstimatedFairValueOfEarnout" xlink:to="ceco_IncreaseInEstimatedFairValueOfEarnout_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers" xlink:to="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodOneMember" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodOneMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_AmortizationAndEarnoutExpenses" xlink:to="ceco_AmortizationAndEarnoutExpenses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_TechnologyMember" xlink:to="ceco_TechnologyMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ceco_IncomeTaxesTable" xlink:to="ceco_IncomeTaxesTable_lbl"/>
        </link:labelLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentType" order="49.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_AmendmentFlag" order="50.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_DocumentPeriodEndDate" order="51.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_DocumentFiscalYearFocus" order="52.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_DocumentFiscalPeriodFocus" order="53.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_TradingSymbol" order="54.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityRegistrantName" order="55.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityCentralIndexKey" order="56.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_CurrentFiscalYearEndDate" order="57.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityFilerCategory" order="58.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityCurrentReportingStatus" order="59.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityFileNumber" order="60.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityTaxIdentificationNumber" order="61.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine1" order="62.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine2" order="63.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityAddressCityOrTown" order="64.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityAddressStateOrProvince" order="65.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityAddressPostalZipCode" order="66.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_CityAreaCode" order="67.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_LocalPhoneNumber" order="68.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityCommonStockSharesOutstanding" order="69.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityInteractiveDataCurrent" order="70.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntitySmallBusiness" order="71.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityEmergingGrowthCompany" order="72.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_DocumentTransitionReport" order="73.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_DocumentQuarterlyReport" order="74.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityShellCompany" order="75.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_Security12bTitle" order="76.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_SecurityExchangeName" order="77.0" priority="2" use="optional" 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="dei_CoverAbstract" xlink:to="dei_EntityIncorporationStateCountryCode" order="78.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_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="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashCurrent" xlink:label="us-gaap_RestrictedCashCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_NotesPayableCurrent1" xlink:label="ceco_NotesPayableCurrent1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidTaxes" xlink:label="us-gaap_PrepaidTaxes"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterest" xlink:label="us-gaap_MinorityInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCostsAndOtherAssets" xlink:label="us-gaap_DeferredCostsAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtCurrent" order="0" priority="2" use="optional" 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="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="0" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsCurrentAbstract" order="0" priority="2" use="optional" 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="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_PreferredStockValue" order="0" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract" order="0" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AssetsAbstract" order="0" priority="2" use="optional" 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="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" order="1" priority="2" use="optional" 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="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_RestrictedCashCurrent" order="1" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="1" priority="2" use="optional" 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="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" order="1" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" order="1" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract" order="1" priority="2" use="optional" 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="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" order="2" priority="2" use="optional" 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="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="2" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="2" priority="2" use="optional" 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="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" order="2" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" order="2" priority="2" use="optional" 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="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="3" priority="2" use="optional" 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="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" order="3" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_Goodwill" order="3" priority="2" use="optional" 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="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="3" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" order="3" priority="2" use="optional" 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="us-gaap_LiabilitiesCurrentAbstract" xlink:to="ceco_NotesPayableCurrent1" order="4" priority="2" use="optional" 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="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" order="4" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="4" priority="2" use="optional" 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="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="4" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="4" priority="2" use="optional" 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="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" order="5" priority="2" use="optional" 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="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="5" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" order="5" priority="2" use="optional" 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="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity" order="5" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_Liabilities" order="5" priority="2" use="optional" 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="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" order="6" priority="2" use="optional" 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="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidTaxes" order="6" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" order="6" priority="2" use="optional" 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="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_MinorityInterest" order="6" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" order="6" priority="2" use="optional" 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="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent" order="7" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_DeferredCostsAndOtherAssets" order="7" priority="2" use="optional" 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="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" order="7" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract" order="7" priority="2" use="optional" 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="us-gaap_AssetsAbstract" xlink:to="us-gaap_Assets" order="8" priority="2" use="optional" 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="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="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="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="us-gaap_CommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="us-gaap_TreasuryStockCommonShares"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" order="0" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" order="1" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesAuthorized" order="2" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesIssued" order="3" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" order="4" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesAuthorized" order="5" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesIssued" order="6" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesOutstanding" order="7" priority="2" use="optional" 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="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_TreasuryStockCommonShares" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_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="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_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="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_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="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AmortizationAndEarnoutExpenses" xlink:label="ceco_AmortizationAndEarnoutExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationIntegrationRelatedCosts" xlink:label="us-gaap_BusinessCombinationIntegrationRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ExecutiveTransitionExpenses" xlink:label="ceco_ExecutiveTransitionExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AsbestosLitigationExpenses" xlink:label="ceco_AsbestosLitigationExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:label="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" order="0" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" order="0" priority="2" use="optional" 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="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="0" priority="2" use="optional" 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="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" order="1" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="1" priority="2" use="optional" 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="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" order="1" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_GrossProfit" order="2" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" order="3" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="ceco_AmortizationAndEarnoutExpenses" order="4" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_BusinessCombinationIntegrationRelatedCosts" order="5" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="ceco_ExecutiveTransitionExpenses" order="6" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_RestructuringCharges" order="7" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="ceco_AsbestosLitigationExpenses" order="8" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_OperatingIncomeLoss" order="9" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" order="10" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_InterestExpense" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="12" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="13" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_ProfitLoss" order="14" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" order="15" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_NetIncomeLoss" order="16" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_EarningsPerShareAbstract" order="17" priority="2" use="optional" 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="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" order="18" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_ProfitLoss" order="0" priority="2" use="optional" 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="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" order="0" priority="2" use="optional" 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="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" order="1" priority="2" use="optional" 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="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_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="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncontrollingInterestMember" xlink:label="us-gaap_NoncontrollingInterestMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:label="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityFairValueAdjustment" xlink:label="us-gaap_EquityFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_14"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding_15"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" 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="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" order="0" priority="2" use="optional" 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="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="0" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" order="1" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="1" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" order="2" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_ProfitLoss" order="2" priority="2" use="optional" 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="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" order="3" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" order="3" priority="2" use="optional" 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="us-gaap_EquityComponentDomain" xlink:to="us-gaap_NoncontrollingInterestMember" order="4" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" order="4" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueIssuedForServices" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" order="6" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" order="7" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" order="8" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" order="9" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EquityFairValueAdjustment" order="11" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" order="13" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest_14" order="14" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding_15" order="15" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_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="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_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="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_BorrowingsOnRevolvingLineOfCredit" xlink:label="ceco_BorrowingsOnRevolvingLineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_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="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" xlink:label="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromRepaymentsOfLinesOfCredit" xlink:label="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForProceedsFromInvestments" xlink:label="us-gaap_PaymentsForProceedsFromInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets" xlink:label="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PaymentsOnFinanceLeasesAndFinancingLiability" xlink:label="ceco_PaymentsOnFinanceLeasesAndFinancingLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfDebtDiscountPremium" xlink:label="us-gaap_AmortizationOfDebtDiscountPremium"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_6"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_DeferredConsiderationPaidForAcquisitions" xlink:label="ceco_DeferredConsiderationPaidForAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" xlink:label="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_InventoryReserveExpenseBenefit" xlink:label="ceco_InventoryReserveExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToMinorityShareholders" xlink:label="us-gaap_PaymentsToMinorityShareholders"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" order="0" priority="2" use="optional" 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="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationDepletionAndAmortization" order="0" priority="2" use="optional" 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="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" order="0" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ProfitLoss" order="0" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ceco_BorrowingsOnRevolvingLineOfCredit" order="0" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" order="1" priority="2" use="optional" 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="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossUnrealized" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" order="1" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" order="1" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit" order="1" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" order="1" priority="2" use="optional" 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="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" order="2" priority="2" use="optional" 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="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" order="2" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" order="2" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" order="2" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsForProceedsFromInvestments" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="3" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="3" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="3" priority="2" use="optional" 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="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" order="4" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ceco_PaymentsOnFinanceLeasesAndFinancingLiability" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" order="5" priority="2" use="optional" 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="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfDebtDiscountPremium" order="5" priority="2" use="optional" 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="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsOfFinancingCosts" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" order="6" priority="2" use="optional" 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="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" order="6" priority="2" use="optional" 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="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_6" order="6" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ceco_DeferredConsiderationPaidForAcquisitions" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" order="7" priority="2" use="optional" 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="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ProvisionForDoubtfulAccounts" order="7" priority="2" use="optional" 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="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" order="7" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" order="8" priority="2" use="optional" 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="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ceco_InventoryReserveExpenseBenefit" order="8" priority="2" use="optional" 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="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" order="8" priority="2" use="optional" 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="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" order="9" priority="2" use="optional" 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="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherNoncashIncomeExpense" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsToMinorityShareholders" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBasisOfReportingForConsolidatedFinancialStatements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="us-gaap_AccountingChangesAndErrorCorrectionsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:to="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivable" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilities" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock" xlink:label="us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventories" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssets" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpenses3" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="us-gaap_PayablesAndAccrualsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebt" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_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="us-gaap_DebtDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShare" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_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="us-gaap_EarningsPerShareTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_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="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlans" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:label="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_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="us-gaap_IncomeTaxDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstruments" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsAllOtherInvestmentsAbstract" xlink:label="us-gaap_InvestmentsAllOtherInvestmentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentsDisclosureTextBlock" xlink:label="us-gaap_FinancialInstrumentsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InvestmentsAllOtherInvestmentsAbstract" xlink:to="us-gaap_FinancialInstrumentsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMatters" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_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="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitions8" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEvents" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncementsPolicies" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="us-gaap_AccountingChangesAndErrorCorrectionsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock" xlink:label="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" order="0" priority="2" use="optional" 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="us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:to="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" xlink:label="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock" order="0" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" order="1" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="us-gaap_PayablesAndAccrualsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfDebtTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_ScheduleOfDebtTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_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="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfNetBenefitCostsTableTextBlock" xlink:label="us-gaap_ScheduleOfNetBenefitCostsTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_ScheduleOfNetBenefitCostsTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ceco_JointVentureAgreementMember" order="0" priority="2" use="optional" 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="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_TypeOfArrangementAxis" order="1" priority="2" use="optional" 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="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MaderHoldingsLPMember" order="1" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="2" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" order="2" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_KemcoSystemsCoLlcMember" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_CompassWaterSolutionsIncMember" order="4" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MalvarEngineeringLimitedMember" order="5" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_WesternAirDuctsLtdMember" order="6" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_TranscendSolutionMember" order="7" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_Ds21CoLtdMember" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock" xlink:label="us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock" xlink:label="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock" order="1" priority="2" use="optional" 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="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock" order="2" priority="2" use="optional" 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="us-gaap_SegmentReportingAbstract" xlink:to="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:label="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivableTypeDomain" xlink:label="us-gaap_ReceivableTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeAccountsReceivableMember" xlink:label="us-gaap_TradeAccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:to="us-gaap_ReceivableTypeDomain" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:to="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" order="0" priority="2" use="optional" 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="us-gaap_ReceivablesAbstract" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" order="0" priority="2" use="optional" 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="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_ReceivablesLongTermContractsOrPrograms" order="0" priority="2" use="optional" 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="us-gaap_ReceivableTypeDomain" xlink:to="us-gaap_TradeAccountsReceivableMember" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:to="us-gaap_AccountsNotesAndLoansReceivableLineItems" order="1" priority="2" use="optional" 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="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AccountsReceivableGrossCurrent" order="1" priority="2" use="optional" 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="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractReceivableRetainage1" xlink:label="ceco_ContractReceivableRetainage1"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_RetainageReceivablesOnContractsPeriod" xlink:label="ceco_RetainageReceivablesOnContractsPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForOtherCreditLosses" xlink:label="us-gaap_ProvisionForOtherCreditLosses"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract" xlink:to="ceco_ContractReceivableRetainage1" order="0" priority="2" use="optional" 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="us-gaap_ReceivablesAbstract" xlink:to="ceco_RetainageReceivablesOnContractsPeriod" order="1" priority="2" use="optional" 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="us-gaap_ReceivablesAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="2" priority="2" use="optional" 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="us-gaap_ReceivablesAbstract" xlink:to="us-gaap_ProvisionForOtherCreditLosses" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrentAbstract" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ContractWithCustomerAssetNetCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" order="0" priority="2" use="optional" 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="us-gaap_ContractWithCustomerAssetNetCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesMember" xlink:label="us-gaap_AccruedLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:label="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrentAbstract" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractLiabilitiesRecognizedAsRevenue" xlink:label="ceco_ContractLiabilitiesRecognizedAsRevenue"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_AccruedLiabilitiesMember" order="0" priority="2" use="optional" 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="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" order="0" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_FinancialInstrumentAxis" order="0" priority="2" use="optional" 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="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" order="0" priority="2" use="optional" 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="us-gaap_ContractWithCustomerAssetNetCurrentAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" 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="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="1" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" order="1" priority="2" use="optional" 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="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent" order="2" priority="2" use="optional" 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="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="ceco_ContractLiabilitiesRecognizedAsRevenue" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNetAbstract" xlink:label="us-gaap_InventoryNetAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterials" xlink:label="us-gaap_InventoryRawMaterials"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcess" xlink:label="us-gaap_InventoryWorkInProcess"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods" xlink:label="us-gaap_InventoryFinishedGoods"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryNetAbstract" xlink:to="us-gaap_InventoryRawMaterials" order="0" priority="2" use="optional" 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="us-gaap_InventoryNetAbstract" xlink:to="us-gaap_InventoryWorkInProcess" order="1" priority="2" use="optional" 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="us-gaap_InventoryNetAbstract" xlink:to="us-gaap_InventoryFinishedGoods" order="2" priority="2" use="optional" 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="us-gaap_InventoryNetAbstract" xlink:to="us-gaap_InventoryValuationReserves" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryNetAbstract" xlink:to="us-gaap_InventoryNet" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWriteDown" xlink:label="us-gaap_InventoryWriteDown"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryWriteDown" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillPurchaseAccountingAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:label="us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_3"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers" xlink:label="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" xlink:label="us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill_9"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_Goodwill" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillPurchaseAccountingAdjustments" order="1" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillForeignCurrencyTranslationGainLoss" order="2" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_Goodwill_3" order="3" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" order="5" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers" order="6" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" order="7" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" order="8" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill_9" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_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="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ForeignCurrencyTranslationAdjustmentMember" xlink:label="ceco_ForeignCurrencyTranslationAdjustmentMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TechnologyBasedIntangibleAssetsMember" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="0" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" order="0" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" order="0" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerListsMember" order="1" priority="2" use="optional" 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="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems" order="1" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" order="1" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" order="2" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ceco_ForeignCurrencyTranslationAdjustmentMember" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TransfersFromIndefiniteLifeClassification" xlink:label="ceco_TransfersFromIndefiniteLifeClassification"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" xlink:label="us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" xlink:label="us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_5"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ceco_TransfersFromIndefiniteLifeClassification" order="2" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments" order="3" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_5" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CertainTradeNamesMember" xlink:label="ceco_CertainTradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="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="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="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="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="0" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="0" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ceco_CertainTradeNamesMember" order="0" priority="2" use="optional" 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="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" order="0" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="1" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" xlink:to="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" order="1" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="2" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="3" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="4" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="5" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure" order="6" priority="2" use="optional" 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="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="us-gaap_PayablesAndAccrualsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableTradeCurrent" xlink:label="us-gaap_AccountsPayableTradeCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractLiabilityCurrent" xlink:label="ceco_ContractLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_LeaseLiabilitiesCurrent" xlink:label="ceco_LeaseLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_AccountsPayableTradeCurrent" order="0" priority="2" use="optional" 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="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" order="1" priority="2" use="optional" 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="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_ProductWarrantyAccrualClassifiedCurrent" order="2" priority="2" use="optional" 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="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ceco_ContractLiabilityCurrent" order="3" priority="2" use="optional" 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="us-gaap_PayablesAndAccrualsAbstract" xlink:to="ceco_LeaseLiabilitiesCurrent" order="4" priority="2" use="optional" 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="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" order="5" priority="2" use="optional" 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="us-gaap_PayablesAndAccrualsAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TermDebtMember" xlink:label="ceco_TermDebtMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_SeniorSecuredTermLoanMember" xlink:label="ceco_SeniorSecuredTermLoanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditMember" xlink:label="us-gaap_LineOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_SeniorDebtMember" xlink:label="ceco_SeniorDebtMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WarehouseAgreementBorrowings" xlink:label="us-gaap_WarehouseAgreementBorrowings"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentUnamortizedDiscount" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentAxis" order="0" priority="2" use="optional" 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="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtInstrumentTable" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentNameDomain" xlink:to="ceco_TermDebtMember" order="0" priority="2" use="optional" 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="us-gaap_CreditFacilityDomain" xlink:to="ceco_SeniorSecuredTermLoanMember" order="0" priority="2" use="optional" 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="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_LineOfCreditMember" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCredit" order="0" priority="2" use="optional" 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="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_ShortTermDebtTypeAxis" order="1" priority="2" use="optional" 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="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" order="1" priority="2" use="optional" 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="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebt" order="1" priority="2" use="optional" 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="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" order="2" priority="2" use="optional" 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="us-gaap_CreditFacilityDomain" xlink:to="ceco_SeniorDebtMember" order="2" priority="2" use="optional" 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="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_WarehouseAgreementBorrowings" order="2" priority="2" use="optional" 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="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" order="2.0" priority="2" use="optional" 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="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentLineItems" order="3" priority="2" use="optional" 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="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentUnamortizedDiscount" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtNoncurrent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodAxis" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_SeniorSecuredTermLoanMember" xlink:label="ceco_SeniorSecuredTermLoanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFrequencyOfPeriodicPayment" xlink:label="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodOneMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal" xlink:label="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodTwoMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentMaturityDate" xlink:label="us-gaap_DebtInstrumentMaturityDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodThreeMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodThreeMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodAxis" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodDomain" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" order="0" priority="2" use="optional" 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="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtInstrumentTable" order="0" priority="2" use="optional" 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="us-gaap_CreditFacilityDomain" xlink:to="ceco_SeniorSecuredTermLoanMember" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodOneMember" order="0" priority="2" use="optional" 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="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodAxis" order="1" priority="2" use="optional" 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="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal" order="1" priority="2" use="optional" 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="us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodTwoMember" order="1" priority="2" use="optional" 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="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentLineItems" order="2" priority="2" use="optional" 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="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentMaturityDate" order="2" priority="2" use="optional" 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="us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodThreeMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CreditAgreementMember" xlink:label="ceco_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StandbyLettersOfCreditMember" xlink:label="us-gaap_StandbyLettersOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_OwnershipDomain" xlink:label="srt_OwnershipDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EffoxFlextorMadderMember" xlink:label="ceco_EffoxFlextorMadderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_FederalFundsRateMember" xlink:label="ceco_FederalFundsRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_OwnershipAxis" xlink:label="srt_OwnershipAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EuroDenominatedBankGuaranteeMember" xlink:label="ceco_EuroDenominatedBankGuaranteeMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_BankGuaranteesMember" xlink:label="ceco_BankGuaranteesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_NetherlandsFacilityMember" xlink:label="ceco_NetherlandsFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount" xlink:label="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaximumConsolidatedLeverageRatio" xlink:label="ceco_MaximumConsolidatedLeverageRatio"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecuredDebt" xlink:label="us-gaap_SecuredDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterestOwnershipPercentageByParent" xlink:label="us-gaap_MinorityInterestOwnershipPercentageByParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsNoncurrent" xlink:label="us-gaap_AssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioForecastMember" order="0" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_CreditFacilityAxis" order="0" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear" order="0" priority="2" use="optional" 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="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_LineOfCreditFacilityTable" order="0" priority="2" use="optional" 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="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" order="0" priority="2" use="optional" 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="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" order="0" priority="2" use="optional" 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="srt_RangeMember" xlink:to="srt_MinimumMember" order="0" priority="2" use="optional" 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="srt_RangeAxis" xlink:to="srt_RangeMember" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentNameDomain" xlink:to="ceco_CreditAgreementMember" order="0" priority="2" use="optional" 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="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_StandbyLettersOfCreditMember" order="0" priority="2" use="optional" 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="srt_OwnershipDomain" xlink:to="ceco_EffoxFlextorMadderMember" order="0" priority="2" use="optional" 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="us-gaap_VariableRateDomain" xlink:to="ceco_FederalFundsRateMember" order="0" priority="2" use="optional" 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="srt_OwnershipAxis" xlink:to="srt_OwnershipDomain" order="0" priority="2" use="optional" 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="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" order="0" priority="2" use="optional" 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="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" order="0" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_RangeAxis" order="1" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" order="1" priority="2" use="optional" 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="srt_RangeMember" xlink:to="srt_MaximumMember" order="1" priority="2" use="optional" 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="us-gaap_DebtInstrumentNameDomain" xlink:to="ceco_EuroDenominatedBankGuaranteeMember" order="1" priority="2" use="optional" 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="us-gaap_CreditFacilityDomain" xlink:to="ceco_BankGuaranteesMember" order="1" priority="2" use="optional" 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="us-gaap_VariableRateDomain" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" order="1" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_VariableRateAxis" order="2" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" order="2" priority="2" use="optional" 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="us-gaap_CreditFacilityDomain" xlink:to="ceco_NetherlandsFacilityMember" order="2" priority="2" use="optional" 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="us-gaap_VariableRateDomain" xlink:to="us-gaap_BaseRateMember" order="2" priority="2" use="optional" 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="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" order="2.0" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_DebtInstrumentAxis" order="3" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" order="3" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" order="4" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" order="4" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_OwnershipAxis" order="5" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage" order="5" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_StatementScenarioAxis" order="6" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" order="6" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_LineOfCreditFacilityLineItems" order="7" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount" order="7" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" order="8" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtWeightedAverageInterestRate" order="9" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ceco_MaximumConsolidatedLeverageRatio" order="10" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_SecuredDebt" order="11" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_MinorityInterestOwnershipPercentageByParent" order="12" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_AssetsCurrent" order="13" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_AssetsNoncurrent" order="14" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_Liabilities" order="15" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_Revenues" order="16" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" order="17" priority="2" use="optional" 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="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCredit" order="18" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="us-gaap_NetIncomeLossAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_NetIncomeLoss" order="0" priority="2" use="optional" 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="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_NetIncomeLossAbstract" order="1" priority="2" use="optional" 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="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" order="2" priority="2" use="optional" 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="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="3" priority="2" use="optional" 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="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="4" priority="2" use="optional" 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="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarningsAndDividendsPerShareAbstract" xlink:label="ceco_EarningsAndDividendsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:label="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ceco_EarningsAndDividendsPerShareAbstract" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="0" priority="2" use="optional" 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="ceco_EarningsAndDividendsPerShareAbstract" xlink:to="us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" order="1" priority="2" use="optional" 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="ceco_EarningsAndDividendsPerShareAbstract" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" order="2" priority="2" use="optional" 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="ceco_EarningsAndDividendsPerShareAbstract" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_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="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockPlans" xlink:label="us-gaap_ProceedsFromStockPlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_DirectorMember" order="0" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" order="0" priority="2" use="optional" 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="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" 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="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" order="0" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="1" priority="2" use="optional" 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="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="srt_TitleOfIndividualAxis" order="1" priority="2" use="optional" 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="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="2" priority="2" use="optional" 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="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="2" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ProceedsFromStockPlans" order="3" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" order="4" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="4.0" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" order="5" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="6" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="7" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate" order="8" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm" order="9" priority="2" use="optional" 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="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:label="us-gaap_DefinedBenefitPlanDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanInterestCost" xlink:label="us-gaap_DefinedBenefitPlanInterestCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionPlansDefinedBenefitMember" xlink:label="us-gaap_PensionPlansDefinedBenefitMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" xlink:label="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetirementPlanTypeAxis" xlink:label="us-gaap_RetirementPlanTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" xlink:label="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember" xlink:label="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" xlink:label="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanInterestCost" order="0" priority="2" use="optional" 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="us-gaap_RetirementPlanTypeDomain" xlink:to="us-gaap_PensionPlansDefinedBenefitMember" order="0" priority="2" use="optional" 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="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" xlink:to="us-gaap_RetirementPlanTypeAxis" order="0" priority="2" use="optional" 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="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain" order="0" priority="2" use="optional" 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="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember" order="1" priority="2" use="optional" 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="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" xlink:to="us-gaap_DefinedBenefitPlanDisclosureLineItems" order="1" priority="2" use="optional" 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="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanContributionsByEmployer" xlink:label="us-gaap_DefinedBenefitPlanContributionsByEmployer"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionContributions" xlink:label="us-gaap_PensionContributions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent" xlink:label="us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_DefinedBenefitPlanContributionsByEmployer" order="0" priority="2" use="optional" 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="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_PensionContributions" order="1" priority="2" use="optional" 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="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidatedEntitiesDomain" xlink:label="srt_ConsolidatedEntitiesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SubsidiariesMember" xlink:label="srt_SubsidiariesMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncomeTaxesLineItems" xlink:label="ceco_IncomeTaxesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OpenTaxYear" xlink:label="us-gaap_OpenTaxYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidatedEntitiesAxis" xlink:label="srt_ConsolidatedEntitiesAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncomeTaxesTable" xlink:label="ceco_IncomeTaxesTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_StateAndForeignAuthoritiesMember" xlink:label="ceco_StateAndForeignAuthoritiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived" xlink:label="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ConsolidatedEntitiesDomain" xlink:to="srt_SubsidiariesMember" order="0" priority="2" use="optional" 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="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_OpenTaxYear" order="0" priority="2" use="optional" 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="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" order="0" priority="2" use="optional" 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="srt_ConsolidatedEntitiesAxis" xlink:to="srt_ConsolidatedEntitiesDomain" order="0" priority="2" use="optional" 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="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" order="0" priority="2" use="optional" 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="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="ceco_IncomeTaxesTable" order="0" priority="2" use="optional" 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="ceco_IncomeTaxesTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" order="0" priority="2" use="optional" 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="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" order="1" priority="2" use="optional" 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="us-gaap_IncomeTaxAuthorityDomain" xlink:to="ceco_StateAndForeignAuthoritiesMember" order="1" priority="2" use="optional" 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="ceco_IncomeTaxesTable" xlink:to="srt_ConsolidatedEntitiesAxis" order="1" priority="2" use="optional" 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="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" order="2" priority="2" use="optional" 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="ceco_IncomeTaxesTable" xlink:to="ceco_IncomeTaxesLineItems" order="2" priority="2" use="optional" 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="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="3" priority="2" use="optional" 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="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived" order="4" priority="2" use="optional" 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="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" order="5" priority="2" use="optional" 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="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" order="6" priority="2" use="optional" 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="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_Revenues" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_FairValueOfFinancialInstrumentsLineItems" xlink:label="ceco_FairValueOfFinancialInstrumentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFairValue" xlink:label="us-gaap_DebtInstrumentFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CreditFacilityMember" xlink:label="ceco_CreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" xlink:label="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CashHeldOutsideDomesticTerritory" xlink:label="ceco_CashHeldOutsideDomesticTerritory"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ceco_FairValueOfFinancialInstrumentsLineItems" xlink:to="us-gaap_DebtInstrumentFairValue" order="0" priority="2" use="optional" 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="us-gaap_DebtInstrumentNameDomain" xlink:to="ceco_CreditFacilityMember" order="0" priority="2" use="optional" 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="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" xlink:to="us-gaap_DebtInstrumentAxis" order="0" priority="2" use="optional" 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="us-gaap_FairValueDisclosuresAbstract" xlink:to="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" order="0" priority="2" use="optional" 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="ceco_FairValueOfFinancialInstrumentsLineItems" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="1" priority="2" use="optional" 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="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" xlink:to="ceco_FairValueOfFinancialInstrumentsLineItems" order="1" priority="2" use="optional" 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="ceco_FairValueOfFinancialInstrumentsLineItems" xlink:to="ceco_CashHeldOutsideDomesticTerritory" order="2" priority="2" use="optional" 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="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncatastrophicEventAxis" xlink:label="us-gaap_NoncatastrophicEventAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsLineItems" xlink:label="us-gaap_OtherCommitmentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LitigationSettlementAmountAwardedFromOtherParty" xlink:label="us-gaap_LitigationSettlementAmountAwardedFromOtherParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AsbestosIssueMember" xlink:label="us-gaap_AsbestosIssueMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AverageCostPerSettledClaim" xlink:label="ceco_AverageCostPerSettledClaim"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyPendingClaimsNumber" xlink:label="us-gaap_LossContingencyPendingClaimsNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyManagementsAssessmentAndProcess" xlink:label="us-gaap_LossContingencyManagementsAssessmentAndProcess"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain" order="0" priority="2" use="optional" 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="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_LossContingenciesTable" order="0" priority="2" use="optional" 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="us-gaap_LossContingenciesTable" xlink:to="us-gaap_NoncatastrophicEventAxis" order="0" priority="2" use="optional" 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="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_LitigationSettlementAmountAwardedFromOtherParty" order="0" priority="2" use="optional" 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="us-gaap_NoncatastrophicEventDomain" xlink:to="us-gaap_AsbestosIssueMember" order="0" priority="2" use="optional" 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="us-gaap_LossContingenciesTable" xlink:to="us-gaap_OtherCommitmentsLineItems" order="1" priority="2" use="optional" 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="us-gaap_OtherCommitmentsLineItems" xlink:to="ceco_AverageCostPerSettledClaim" order="1" priority="2" use="optional" 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="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_LossContingencyPendingClaimsNumber" order="2" priority="2" use="optional" 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="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_LossContingencyManagementsAssessmentAndProcess" order="3" priority="2" use="optional" 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="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:label="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain" xlink:label="srt_EquityMethodInvesteeNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_OtherNonInvesteesMember" xlink:label="ceco_OtherNonInvesteesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:label="us-gaap_BusinessAcquisitionContingentConsiderationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TechnologyMember" xlink:label="ceco_TechnologyMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompanyReceivedWorkingCapital" xlink:label="ceco_CompanyReceivedWorkingCapital"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CustomerListsAndTradeNameMember" xlink:label="ceco_CustomerListsAndTradeNameMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PurchasePrice" xlink:label="ceco_PurchasePrice"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsFairValueAdjustment" xlink:label="us-gaap_AssetsFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityFairValueAdjustment" xlink:label="us-gaap_EquityFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_HoldbackPayble" xlink:label="ceco_HoldbackPayble"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NotesPayable" xlink:label="us-gaap_NotesPayable"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_InstallmentsPaid" xlink:label="ceco_InstallmentsPaid"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalConsideration" xlink:label="ceco_AdditionalConsideration"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnOutFairValue" xlink:label="ceco_EarnOutFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndOtherAccruedLiabilities" xlink:label="us-gaap_AccountsPayableAndOtherAccruedLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent" xlink:label="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSalesOfLoansNet" xlink:label="us-gaap_GainLossOnSalesOfLoansNet"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncreaseInEstimatedFairValueOfEarnout" xlink:label="ceco_IncreaseInEstimatedFairValueOfEarnout"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnoutPayments" xlink:label="ceco_EarnoutPayments"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnOutLiability" xlink:label="ceco_EarnOutLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueRevenueRecognized1" xlink:label="us-gaap_DeferredRevenueRevenueRecognized1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestRevenueExpenseNet" xlink:label="us-gaap_InterestRevenueExpenseNet"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PercentageOfEquityHoldInJointVenture" xlink:label="ceco_PercentageOfEquityHoldInJointVenture"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_VotingInterestInJointVenture" xlink:label="ceco_VotingInterestInJointVenture"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityMethodInvestmentOwnershipPercentage" xlink:label="us-gaap_EquityMethodInvestmentOwnershipPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" order="0" priority="2" use="optional" 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="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:to="srt_EquityMethodInvesteeNameDomain" order="0" priority="2" use="optional" 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="srt_EquityMethodInvesteeNameDomain" xlink:to="ceco_OtherNonInvesteesMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" order="0" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerListsMember" order="0" priority="2" use="optional" 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="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" order="0" priority="2" use="optional" 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="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ceco_MaderHoldingsLPMember" order="0" priority="2" use="optional" 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="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" order="1" priority="2" use="optional" 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="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MalvarEngineeringLimitedMember" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" order="1" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ceco_TechnologyMember" order="2" priority="2" use="optional" 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="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="srt_CounterpartyNameAxis" order="2" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_KemcoSystemsCoLlcMember" order="2" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_CompanyReceivedWorkingCapital" order="2" priority="2" use="optional" 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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ceco_CustomerListsAndTradeNameMember" order="3" priority="2" use="optional" 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="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_CreditFacilityAxis" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_TranscendSolutionMember" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_PurchasePrice" order="3" priority="2" use="optional" 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="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" order="4" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" order="4" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_AssetsFairValueAdjustment" order="4" priority="2" use="optional" 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="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" order="5" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_CompassWaterSolutionsIncMember" order="5" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_EquityFairValueAdjustment" order="5" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_WesternAirDuctsLtdMember" order="6" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_HoldbackPayble" order="6" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_Ds21CoLtdMember" order="7" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_NotesPayable" order="7" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_JointVentureAgreementMember" order="8" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_InstallmentsPaid" order="8" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_AdditionalConsideration" order="9" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_EarnOutFairValue" order="10" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_AccountsPayableAndOtherAccruedLiabilities" order="11" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent" order="12" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_GainLossOnSalesOfLoansNet" order="13" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_IncreaseInEstimatedFairValueOfEarnout" order="14" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_EarnoutPayments" order="15" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_EarnOutLiability" order="16" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" order="17" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" order="18" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_DeferredRevenueRevenueRecognized1" order="19" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_InterestRevenueExpenseNet" order="20" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_PercentageOfEquityHoldInJointVenture" order="21" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_VotingInterestInJointVenture" order="22" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_EquityMethodInvestmentOwnershipPercentage" order="23" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" order="24" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_AssetsCurrent" order="25" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_NoncurrentAssets" order="26" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_Liabilities" order="27" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_Revenues" order="28" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="29" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssets" xlink:label="us-gaap_OtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilities" xlink:label="us-gaap_OtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ceco_JointVentureAgreementMember" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" 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="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" order="0" priority="2" use="optional" 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="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" order="0" priority="2" use="optional" 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="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ceco_MaderHoldingsLPMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="srt_CounterpartyNameAxis" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" order="1" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_TypeOfArrangementAxis" order="2" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="2" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_KemcoSystemsCoLlcMember" order="2" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_CompassWaterSolutionsIncMember" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_DeferredTaxAssetsDeferredIncome" order="4" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_WesternAirDuctsLtdMember" order="4" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_Goodwill" order="5" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_TranscendSolutionMember" order="5" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_OtherAssets" order="6" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_Ds21CoLtdMember" order="6" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" order="7" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MalvarEngineeringLimitedMember" order="7" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_OtherLiabilities" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ceco_JointVentureAgreementMember" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" 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="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" order="0" priority="2" use="optional" 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="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" order="0" priority="2" use="optional" 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="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ceco_MaderHoldingsLPMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="srt_CounterpartyNameAxis" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_KemcoSystemsCoLlcMember" order="1" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_TypeOfArrangementAxis" order="2" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MalvarEngineeringLimitedMember" order="2" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_TranscendSolutionMember" order="4" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_CompassWaterSolutionsIncMember" order="5" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_WesternAirDuctsLtdMember" order="6" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_Ds21CoLtdMember" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSalesOfLoansNet" xlink:label="us-gaap_GainLossOnSalesOfLoansNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestIncomeExpenseNet" xlink:label="us-gaap_InterestIncomeExpenseNet"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsPerBasicShare" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" 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="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_GainLossOnSalesOfLoansNet" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" order="0" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_InterestIncomeExpenseNet" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" order="1" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" order="2" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare" order="3" priority="2" use="optional" 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="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateAndOtherMember" xlink:label="us-gaap_CorporateAndOtherMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" order="0" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="ceco_EngineeredSystemsMember" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" order="0" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="ceco_IndustrialProcessSolutionsMember" order="1" priority="2" use="optional" 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="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_OperatingIncomeLoss" order="1" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_SegmentReportingInformationLineItems" order="1" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="us-gaap_CorporateAndOtherMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentExpenditureAdditionToLongLivedAssets" xlink:label="us-gaap_SegmentExpenditureAdditionToLongLivedAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateAndOtherMember" xlink:label="us-gaap_CorporateAndOtherMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" order="0" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="ceco_EngineeredSystemsMember" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentExpenditureAdditionToLongLivedAssets" order="0" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="ceco_IndustrialProcessSolutionsMember" order="1" priority="2" use="optional" 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="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_DepreciationDepletionAndAmortization" order="1" priority="2" use="optional" 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="us-gaap_StatementTable" xlink:to="us-gaap_SegmentReportingInformationLineItems" order="1" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="us-gaap_CorporateAndOtherMember" order="2" priority="2" use="optional" 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="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_Assets" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" order="0" priority="2" use="optional" 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="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" order="0" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="ceco_EngineeredSystemsMember" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_Goodwill" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_SegmentReportingInformationLineItems" order="1" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="ceco_IndustrialProcessSolutionsMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsegmentsDomain" xlink:label="us-gaap_SubsegmentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntersubsegmentEliminationsMember" xlink:label="us-gaap_IntersubsegmentEliminationsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsegmentsAxis" xlink:label="us-gaap_SubsegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReportableSubsegmentsMember" xlink:label="us-gaap_ReportableSubsegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntersegmentEliminationMember" xlink:label="us-gaap_IntersegmentEliminationMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ConsolidationItemsAxis" order="0" priority="2" use="optional" 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="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" order="0" priority="2" use="optional" 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="us-gaap_SubsegmentsDomain" xlink:to="us-gaap_IntersubsegmentEliminationsMember" order="0" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="ceco_EngineeredSystemsMember" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" order="0" priority="2" use="optional" 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="srt_ConsolidationItemsDomain" xlink:to="us-gaap_OperatingSegmentsMember" order="0" priority="2" use="optional" 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="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain" order="0" priority="2" use="optional" 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="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" order="0" priority="2" use="optional" 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="us-gaap_SubsegmentsAxis" xlink:to="us-gaap_SubsegmentsDomain" order="0" priority="2" use="optional" 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="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" order="1" priority="2" use="optional" 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="us-gaap_SubsegmentsDomain" xlink:to="us-gaap_ReportableSubsegmentsMember" order="1" priority="2" use="optional" 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="us-gaap_SegmentDomain" xlink:to="ceco_IndustrialProcessSolutionsMember" order="1" priority="2" use="optional" 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="srt_ConsolidationItemsDomain" xlink:to="us-gaap_IntersegmentEliminationMember" order="1" priority="2" use="optional" 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="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_SubsegmentsAxis" order="2" priority="2" use="optional" 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="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_SegmentReportingInformationLineItems" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="us-gaap_PaymentsForPreviousAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" order="0" priority="2" use="optional" 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="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventTable" order="0" priority="2" use="optional" 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="us-gaap_SubsequentEventLineItems" xlink:to="us-gaap_PaymentsForPreviousAcquisition" order="0" priority="2" use="optional" 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="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" order="0" priority="2" use="optional" 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="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTypeAxis" order="0" priority="2" use="optional" 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="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncontrollingInterestMember" xlink:label="us-gaap_NoncontrollingInterestMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" xlink:label="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityFairValueAdjustment" xlink:label="us-gaap_EquityFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProfitLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_NoncontrollingInterestMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueIssuedForServices" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EquityFairValueAdjustment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ceco_JointVentureAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TypeOfArrangementAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MaderHoldingsLPMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_KemcoSystemsCoLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_CompassWaterSolutionsIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MalvarEngineeringLimitedMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_WesternAirDuctsLtdMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_TranscendSolutionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_Ds21CoLtdMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:label="us-gaap_AccountsNotesAndLoansReceivableLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:label="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivableTypeDomain" xlink:label="us-gaap_ReceivableTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivableTypeDomain" xlink:label="us-gaap_ReceivableTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeAccountsReceivableMember" xlink:label="us-gaap_TradeAccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:to="us-gaap_ReceivableTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:to="us-gaap_ReceivableTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable" xlink:to="us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_ReceivablesLongTermContractsOrPrograms" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ReceivableTypeDomain" xlink:to="us-gaap_TradeAccountsReceivableMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AccountsReceivableGrossCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsNotesAndLoansReceivableLineItems" xlink:to="us-gaap_AccountsReceivableNetCurrent" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:label="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesMember" xlink:label="us-gaap_AccruedLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis" xlink:label="us-gaap_FinancialInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:label="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractLiabilitiesRecognizedAsRevenue" xlink:label="ceco_ContractLiabilitiesRecognizedAsRevenue"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="us-gaap_AccruedLiabilitiesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FinancialInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FinancialInstrumentAxis" xlink:to="us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrentAndNoncurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems" xlink:to="ceco_ContractLiabilitiesRecognizedAsRevenue" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ForeignCurrencyTranslationAdjustmentMember" xlink:label="ceco_ForeignCurrencyTranslationAdjustmentMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TechnologyBasedIntangibleAssetsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerListsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ceco_ForeignCurrencyTranslationAdjustmentMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail">
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" xlink:label="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_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="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CertainTradeNamesMember" xlink:label="ceco_CertainTradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="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="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="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="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ceco_CertainTradeNamesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="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="us-gaap_DebtInstrumentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="us-gaap_ShortTermDebtTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TermDebtMember" xlink:label="ceco_TermDebtMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_SeniorSecuredTermLoanMember" xlink:label="ceco_SeniorSecuredTermLoanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditMember" xlink:label="us-gaap_LineOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_SeniorDebtMember" xlink:label="ceco_SeniorDebtMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WarehouseAgreementBorrowings" xlink:label="us-gaap_WarehouseAgreementBorrowings"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentUnamortizedDiscount" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ceco_TermDebtMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ceco_SeniorSecuredTermLoanMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShortTermDebtTypeDomain" xlink:to="us-gaap_LineOfCreditMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCredit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_ShortTermDebtTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebt" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ceco_SeniorDebtMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_WarehouseAgreementBorrowings" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentUnamortizedDiscount" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LongTermDebtNoncurrent" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="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="us-gaap_DebtInstrumentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodAxis" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_SeniorSecuredTermLoanMember" xlink:label="ceco_SeniorSecuredTermLoanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFrequencyOfPeriodicPayment" xlink:label="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodOneMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal" xlink:label="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodTwoMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentMaturityDate" xlink:label="us-gaap_DebtInstrumentMaturityDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentRedemptionPeriodThreeMember" xlink:label="us-gaap_DebtInstrumentRedemptionPeriodThreeMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodAxis" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodAxis" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ceco_SeniorSecuredTermLoanMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentFrequencyOfPeriodicPayment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodOneMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodTwoMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentMaturityDate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentRedemptionPeriodDomain" xlink:to="us-gaap_DebtInstrumentRedemptionPeriodThreeMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityLineItems" xlink:label="us-gaap_LineOfCreditFacilityLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityTable" xlink:label="us-gaap_LineOfCreditFacilityTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioForecastMember" xlink:label="srt_ScenarioForecastMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementScenarioAxis" xlink:label="srt_StatementScenarioAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="srt_ScenarioUnspecifiedDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember" xlink:label="srt_RangeMember_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CreditAgreementMember" xlink:label="ceco_CreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StandbyLettersOfCreditMember" xlink:label="us-gaap_StandbyLettersOfCreditMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_OwnershipDomain" xlink:label="srt_OwnershipDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EffoxFlextorMadderMember" xlink:label="ceco_EffoxFlextorMadderMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_FederalFundsRateMember" xlink:label="ceco_FederalFundsRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_OwnershipAxis" xlink:label="srt_OwnershipAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_OwnershipDomain" xlink:label="srt_OwnershipDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EuroDenominatedBankGuaranteeMember" xlink:label="ceco_EuroDenominatedBankGuaranteeMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_BankGuaranteesMember" xlink:label="ceco_BankGuaranteesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" xlink:label="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_NetherlandsFacilityMember" xlink:label="ceco_NetherlandsFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BaseRateMember" xlink:label="us-gaap_BaseRateMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount" xlink:label="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaximumConsolidatedLeverageRatio" xlink:label="ceco_MaximumConsolidatedLeverageRatio"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SecuredDebt" xlink:label="us-gaap_SecuredDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterestOwnershipPercentageByParent" xlink:label="us-gaap_MinorityInterestOwnershipPercentageByParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsNoncurrent" xlink:label="us-gaap_AssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ScenarioUnspecifiedDomain" xlink:to="srt_ScenarioForecastMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_CreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementScenarioAxis" xlink:to="srt_ScenarioUnspecifiedDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ceco_CreditAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_StandbyLettersOfCreditMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_OwnershipDomain" xlink:to="ceco_EffoxFlextorMadderMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="ceco_FederalFundsRateMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_OwnershipAxis" xlink:to="srt_OwnershipDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_OwnershipAxis" xlink:to="srt_OwnershipDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ceco_EuroDenominatedBankGuaranteeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ceco_BankGuaranteesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_VariableRateAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ceco_NetherlandsFacilityMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_BaseRateMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_DebtInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_OwnershipAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LineOfCreditFacilityTable" xlink:to="srt_StatementScenarioAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_DebtWeightedAverageInterestRate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="ceco_MaximumConsolidatedLeverageRatio" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_SecuredDebt" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_MinorityInterestOwnershipPercentageByParent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_AssetsCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="14" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_AssetsNoncurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="15" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_Liabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="16" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_Revenues" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="17" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="18" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLineItems" xlink:to="us-gaap_LineOfCredit" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="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="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_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="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockPlans" xlink:label="us-gaap_ProceedsFromStockPlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm" xlink:label="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_DirectorMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="srt_TitleOfIndividualAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ProceedsFromStockPlans" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:label="us-gaap_DefinedBenefitPlanDisclosureLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" xlink:label="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanInterestCost" xlink:label="us-gaap_DefinedBenefitPlanInterestCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionPlansDefinedBenefitMember" xlink:label="us-gaap_PensionPlansDefinedBenefitMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetirementPlanTypeAxis" xlink:label="us-gaap_RetirementPlanTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" xlink:label="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember" xlink:label="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" xlink:label="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanInterestCost" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="us-gaap_PensionPlansDefinedBenefitMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable" xlink:to="us-gaap_RetirementPlanTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DefinedBenefitPlanDisclosureLineItems" xlink:to="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail">
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncomeTaxesLineItems" xlink:label="ceco_IncomeTaxesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncomeTaxesTable" xlink:label="ceco_IncomeTaxesTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidatedEntitiesDomain" xlink:label="srt_ConsolidatedEntitiesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SubsidiariesMember" xlink:label="srt_SubsidiariesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OpenTaxYear" xlink:label="us-gaap_OpenTaxYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidatedEntitiesAxis" xlink:label="srt_ConsolidatedEntitiesAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidatedEntitiesDomain" xlink:label="srt_ConsolidatedEntitiesDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_StateAndForeignAuthoritiesMember" xlink:label="ceco_StateAndForeignAuthoritiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived" xlink:label="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="ceco_IncomeTaxesTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ConsolidatedEntitiesDomain" xlink:to="srt_SubsidiariesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_OpenTaxYear" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ConsolidatedEntitiesAxis" xlink:to="srt_ConsolidatedEntitiesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ConsolidatedEntitiesAxis" xlink:to="srt_ConsolidatedEntitiesDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ceco_IncomeTaxesTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="ceco_StateAndForeignAuthoritiesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ceco_IncomeTaxesTable" xlink:to="srt_ConsolidatedEntitiesAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_IncomeTaxesLineItems" xlink:to="us-gaap_Revenues" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail">
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_FairValueOfFinancialInstrumentsLineItems" xlink:label="ceco_FairValueOfFinancialInstrumentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" xlink:label="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentFairValue" xlink:label="us-gaap_DebtInstrumentFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CreditFacilityMember" xlink:label="ceco_CreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CashHeldOutsideDomesticTerritory" xlink:label="ceco_CashHeldOutsideDomesticTerritory"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ceco_FairValueOfFinancialInstrumentsLineItems" xlink:to="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_FairValueOfFinancialInstrumentsLineItems" xlink:to="us-gaap_DebtInstrumentFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ceco_CreditFacilityMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" xlink:to="us-gaap_DebtInstrumentAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_FairValueOfFinancialInstrumentsLineItems" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ceco_FairValueOfFinancialInstrumentsLineItems" xlink:to="ceco_CashHeldOutsideDomesticTerritory" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherCommitmentsLineItems" xlink:label="us-gaap_OtherCommitmentsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncatastrophicEventAxis" xlink:label="us-gaap_NoncatastrophicEventAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LitigationSettlementAmountAwardedFromOtherParty" xlink:label="us-gaap_LitigationSettlementAmountAwardedFromOtherParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AsbestosIssueMember" xlink:label="us-gaap_AsbestosIssueMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AverageCostPerSettledClaim" xlink:label="ceco_AverageCostPerSettledClaim"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyPendingClaimsNumber" xlink:label="us-gaap_LossContingencyPendingClaimsNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossContingencyManagementsAssessmentAndProcess" xlink:label="us-gaap_LossContingencyManagementsAssessmentAndProcess"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_LossContingenciesTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_NoncatastrophicEventAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_LitigationSettlementAmountAwardedFromOtherParty" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NoncatastrophicEventDomain" xlink:to="us-gaap_AsbestosIssueMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherCommitmentsLineItems" xlink:to="ceco_AverageCostPerSettledClaim" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_LossContingencyPendingClaimsNumber" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_LossContingencyManagementsAssessmentAndProcess" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherCommitmentsLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrent" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:label="us-gaap_BusinessAcquisitionContingentConsiderationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:label="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain" xlink:label="srt_EquityMethodInvesteeNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EquityMethodInvesteeNameDomain" xlink:label="srt_EquityMethodInvesteeNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_OtherNonInvesteesMember" xlink:label="ceco_OtherNonInvesteesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TechnologyMember" xlink:label="ceco_TechnologyMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompanyReceivedWorkingCapital" xlink:label="ceco_CompanyReceivedWorkingCapital"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CustomerListsAndTradeNameMember" xlink:label="ceco_CustomerListsAndTradeNameMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PurchasePrice" xlink:label="ceco_PurchasePrice"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsFairValueAdjustment" xlink:label="us-gaap_AssetsFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityFairValueAdjustment" xlink:label="us-gaap_EquityFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_HoldbackPayble" xlink:label="ceco_HoldbackPayble"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NotesPayable" xlink:label="us-gaap_NotesPayable"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_InstallmentsPaid" xlink:label="ceco_InstallmentsPaid"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalConsideration" xlink:label="ceco_AdditionalConsideration"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnOutFairValue" xlink:label="ceco_EarnOutFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndOtherAccruedLiabilities" xlink:label="us-gaap_AccountsPayableAndOtherAccruedLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent" xlink:label="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSalesOfLoansNet" xlink:label="us-gaap_GainLossOnSalesOfLoansNet"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncreaseInEstimatedFairValueOfEarnout" xlink:label="ceco_IncreaseInEstimatedFairValueOfEarnout"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnoutPayments" xlink:label="ceco_EarnoutPayments"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EarnOutLiability" xlink:label="ceco_EarnOutLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueRevenueRecognized1" xlink:label="us-gaap_DeferredRevenueRevenueRecognized1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestRevenueExpenseNet" xlink:label="us-gaap_InterestRevenueExpenseNet"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PercentageOfEquityHoldInJointVenture" xlink:label="ceco_PercentageOfEquityHoldInJointVenture"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_VotingInterestInJointVenture" xlink:label="ceco_VotingInterestInJointVenture"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityMethodInvestmentOwnershipPercentage" xlink:label="us-gaap_EquityMethodInvestmentOwnershipPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:to="srt_EquityMethodInvesteeNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:to="srt_EquityMethodInvesteeNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_EquityMethodInvesteeNameDomain" xlink:to="ceco_OtherNonInvesteesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerListsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ceco_MaderHoldingsLPMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MalvarEngineeringLimitedMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ceco_TechnologyMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="srt_CounterpartyNameAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_KemcoSystemsCoLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_CompanyReceivedWorkingCapital" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ceco_CustomerListsAndTradeNameMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_CreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_TranscendSolutionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_PurchasePrice" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_AssetsFairValueAdjustment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_CompassWaterSolutionsIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_EquityFairValueAdjustment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_WesternAirDuctsLtdMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_HoldbackPayble" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_Ds21CoLtdMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_NotesPayable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_JointVentureAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_InstallmentsPaid" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_AdditionalConsideration" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_EarnOutFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_AccountsPayableAndOtherAccruedLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_GainLossOnSalesOfLoansNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="14" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_IncreaseInEstimatedFairValueOfEarnout" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="15" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_EarnoutPayments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="16" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_EarnOutLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="17" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="18" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="19" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_DeferredRevenueRevenueRecognized1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="20" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_InterestRevenueExpenseNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="21" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_PercentageOfEquityHoldInJointVenture" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="22" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="ceco_VotingInterestInJointVenture" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="23" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_EquityMethodInvestmentOwnershipPercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="24" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="25" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_AssetsCurrent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="26" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_NoncurrentAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="27" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_Liabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="28" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_Revenues" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="29" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionContingentConsiderationLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssets" xlink:label="us-gaap_OtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilities" xlink:label="us-gaap_OtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ceco_JointVentureAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ceco_MaderHoldingsLPMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="srt_CounterpartyNameAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_TypeOfArrangementAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_KemcoSystemsCoLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_CompassWaterSolutionsIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_DeferredTaxAssetsDeferredIncome" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_WesternAirDuctsLtdMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_Goodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_TranscendSolutionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_OtherAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_Ds21CoLtdMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MalvarEngineeringLimitedMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_OtherLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:label="us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_JointVentureAgreementMember" xlink:label="ceco_JointVentureAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfArrangementAxis" xlink:label="us-gaap_TypeOfArrangementAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MaderHoldingsLPMember" xlink:label="ceco_MaderHoldingsLPMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_KemcoSystemsCoLlcMember" xlink:label="ceco_KemcoSystemsCoLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_MalvarEngineeringLimitedMember" xlink:label="ceco_MalvarEngineeringLimitedMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_TranscendSolutionMember" xlink:label="ceco_TranscendSolutionMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_CompassWaterSolutionsIncMember" xlink:label="ceco_CompassWaterSolutionsIncMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_WesternAirDuctsLtdMember" xlink:label="ceco_WesternAirDuctsLtdMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_Ds21CoLtdMember" xlink:label="ceco_Ds21CoLtdMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="ceco_JointVentureAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TypeOfArrangementAxis" xlink:to="us-gaap_ArrangementsAndNonarrangementTransactionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ceco_MaderHoldingsLPMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="srt_CounterpartyNameAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_KemcoSystemsCoLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_TypeOfArrangementAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_MalvarEngineeringLimitedMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_TranscendSolutionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_CompassWaterSolutionsIncMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_WesternAirDuctsLtdMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_Ds21CoLtdMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSalesOfLoansNet" xlink:label="us-gaap_GainLossOnSalesOfLoansNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EnvironmentalIntegratedSolutionsMember" xlink:label="ceco_EnvironmentalIntegratedSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestIncomeExpenseNet" xlink:label="us-gaap_InterestIncomeExpenseNet"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_GeneralRubberLlcMember" xlink:label="ceco_GeneralRubberLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsPerBasicShare" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:label="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_GainLossOnSalesOfLoansNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_EnvironmentalIntegratedSolutionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_InterestIncomeExpenseNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ceco_GeneralRubberLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsPerBasicShare" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateAndOtherMember" xlink:label="us-gaap_CorporateAndOtherMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="ceco_EngineeredSystemsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="ceco_IndustrialProcessSolutionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_OperatingIncomeLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="us-gaap_CorporateAndOtherMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentExpenditureAdditionToLongLivedAssets" xlink:label="us-gaap_SegmentExpenditureAdditionToLongLivedAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateAndOtherMember" xlink:label="us-gaap_CorporateAndOtherMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="ceco_EngineeredSystemsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentExpenditureAdditionToLongLivedAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="ceco_IndustrialProcessSolutionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_DepreciationDepletionAndAmortization" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="us-gaap_CorporateAndOtherMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_Assets" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="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="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="ceco_EngineeredSystemsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_Goodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="ceco_IndustrialProcessSolutionsMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="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="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidationItemsAxis" xlink:label="srt_ConsolidationItemsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentDomain" xlink:label="us-gaap_SegmentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsegmentsDomain" xlink:label="us-gaap_SubsegmentsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntersubsegmentEliminationsMember" xlink:label="us-gaap_IntersubsegmentEliminationsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_EngineeredSystemsMember" xlink:label="ceco_EngineeredSystemsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingSegmentsMember" xlink:label="us-gaap_OperatingSegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ConsolidationItemsDomain" xlink:label="srt_ConsolidationItemsDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsegmentsAxis" xlink:label="us-gaap_SubsegmentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsegmentsDomain" xlink:label="us-gaap_SubsegmentsDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReportableSubsegmentsMember" xlink:label="us-gaap_ReportableSubsegmentsMember"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IndustrialProcessSolutionsMember" xlink:label="ceco_IndustrialProcessSolutionsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntersegmentEliminationMember" xlink:label="us-gaap_IntersegmentEliminationMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ConsolidationItemsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_SegmentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsegmentsDomain" xlink:to="us-gaap_IntersubsegmentEliminationsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="ceco_EngineeredSystemsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ConsolidationItemsDomain" xlink:to="us-gaap_OperatingSegmentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsegmentsAxis" xlink:to="us-gaap_SubsegmentsDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsegmentsAxis" xlink:to="us-gaap_SubsegmentsDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_StatementBusinessSegmentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsegmentsDomain" xlink:to="us-gaap_ReportableSubsegmentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SegmentDomain" xlink:to="ceco_IndustrialProcessSolutionsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ConsolidationItemsDomain" xlink:to="us-gaap_IntersegmentEliminationMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_SubsegmentsAxis" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems" xlink:label="us-gaap_SubsequentEventLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable" xlink:label="us-gaap_SubsequentEventTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForPreviousAcquisition" xlink:label="us-gaap_PaymentsForPreviousAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="us-gaap_SubsequentEventTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventLineItems" xlink:to="us-gaap_PaymentsForPreviousAcquisition" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTypeAxis" priority="2" use="optional"/>
        </link:definitionLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LongTermDebtCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_MinorityInterest" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_PreferredStockValue" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_RestrictedCashCurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_StockholdersEquity" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LongTermDebtNoncurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_CommonStockValue" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_InventoryNet" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableCurrent" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="ceco_NotesPayableCurrent1" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidTaxes" order="6" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredCostsAndOtherAssets" order="6" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" order="7" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" order="7" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MinorityInterest" xlink:label="us-gaap_MinorityInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedCashCurrent" xlink:label="us-gaap_RestrictedCashCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_NotesPayableCurrent1" xlink:label="ceco_NotesPayableCurrent1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidTaxes" xlink:label="us-gaap_PrepaidTaxes"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredCostsAndOtherAssets" xlink:label="us-gaap_DeferredCostsAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail2">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_ProductWarrantyAccrualClassifiedCurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="ceco_ContractLiabilityCurrent" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="ceco_LeaseLiabilitiesCurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" order="4" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractLiabilityCurrent" xlink:label="ceco_ContractLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_LeaseLiabilitiesCurrent" xlink:label="ceco_LeaseLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail2">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="1" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSeniorDebtSummaryOfDebtDetail2">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebtCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebtNoncurrent" order="1" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail3">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_Goodwill" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_OtherAssets" order="4" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssets" xlink:label="us-gaap_OtherAssets"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OperatingIncomeLoss" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" order="0" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ProfitLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="0" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_ProfitLoss" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_InterestExpense" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="ceco_AmortizationAndEarnoutExpenses" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ProfitLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="ceco_ExecutiveTransitionExpenses" order="3" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="ceco_AsbestosLitigationExpenses" order="5" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_BusinessCombinationIntegrationRelatedCosts" order="6" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_RestructuringCharges" order="7" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GrossProfit" order="9" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AmortizationAndEarnoutExpenses" xlink:label="ceco_AmortizationAndEarnoutExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:label="us-gaap_NetIncomeLossAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ExecutiveTransitionExpenses" xlink:label="ceco_ExecutiveTransitionExpenses"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AsbestosLitigationExpenses" xlink:label="ceco_AsbestosLitigationExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationIntegrationRelatedCosts" xlink:label="us-gaap_BusinessCombinationIntegrationRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_ProfitLoss" order="1" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:label="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ProfitLoss" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="0" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="ceco_BorrowingsOnRevolvingLineOfCredit" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DepreciationDepletionAndAmortization" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossUnrealized" order="2" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsForProceedsFromInvestments" order="2" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLongTermDebt" order="3" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" order="4" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsOfFinancingCosts" order="4" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="ceco_DeferredConsiderationPaidForAcquisitions" order="5" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="ceco_PaymentsOnFinanceLeasesAndFinancingLiability" order="6" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" order="7" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" order="7" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AmortizationOfDebtDiscountPremium" order="8" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" order="8" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" order="9" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ProvisionForDoubtfulAccounts" order="10" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" order="10" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInInventories" order="11" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsToMinorityShareholders" order="11" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" order="12" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" order="13" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" order="14" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" order="15" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="17" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets" order="20" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_OtherNoncashIncomeExpense" order="22" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" order="23" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" order="24" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" order="25" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ceco_InventoryReserveExpenseBenefit" order="27" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_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="us-gaap_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="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_BorrowingsOnRevolvingLineOfCredit" xlink:label="ceco_BorrowingsOnRevolvingLineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromRepaymentsOfLinesOfCredit" xlink:label="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForProceedsFromInvestments" xlink:label="us-gaap_PaymentsForProceedsFromInvestments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:label="us-gaap_PaymentsOfFinancingCosts"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_DeferredConsiderationPaidForAcquisitions" xlink:label="ceco_DeferredConsiderationPaidForAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_PaymentsOnFinanceLeasesAndFinancingLiability" xlink:label="ceco_PaymentsOnFinanceLeasesAndFinancingLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" xlink:label="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfDebtDiscountPremium" xlink:label="us-gaap_AmortizationOfDebtDiscountPremium"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToMinorityShareholders" xlink:label="us-gaap_PaymentsToMinorityShareholders"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" xlink:label="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets" xlink:label="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" xlink:label="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ceco-20240630.xsd#ceco_InventoryReserveExpenseBenefit" xlink:label="ceco_InventoryReserveExpenseBenefit"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail7">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" order="0" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" order="2" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_ReceivablesLongTermContractsOrPrograms" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" order="2" weight="-1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryRawMaterials" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryWorkInProcess" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryFinishedGoods" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryValuationReserves" order="3" weight="-1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterials" xlink:label="us-gaap_InventoryRawMaterials"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcess" xlink:label="us-gaap_InventoryWorkInProcess"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoods" xlink:label="us-gaap_InventoryFinishedGoods"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LineOfCredit" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_DebtInstrumentUnamortizedDiscount" order="1" weight="-1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtInstrumentUnamortizedDiscount" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="1" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanInterestCost" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" order="2" weight="-1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanInterestCost" xlink:label="us-gaap_DefinedBenefitPlanInterestCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" xlink:label="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" xlink:label="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_Goodwill" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_OtherAssets" order="4" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssets" xlink:label="us-gaap_OtherAssets"/>
        </link:calculationLink>
      </link:linkbase>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element id="ceco_BorrowingsOnRevolvingLineOfCredit" name="BorrowingsOnRevolvingLineOfCredit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" name="AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_ContractReceivableRetainage1" name="ContractReceivableRetainage1" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock" name="IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ceco_EarnOutLiability" name="EarnOutLiability" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_AsbestosLitigationExpenses" name="AsbestosLitigationExpenses" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_CompassWaterSolutionsIncMember" name="CompassWaterSolutionsIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_MaderHoldingsLPMember" name="MaderHoldingsLPMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" name="ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_AverageCostPerSettledClaim" name="AverageCostPerSettledClaim" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_SeniorDebtMember" name="SeniorDebtMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_IncomeTaxesTable" name="IncomeTaxesTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_EarningsAndDividendsPerShareAbstract" name="EarningsAndDividendsPerShareAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" name="AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets" name="IncreaseDecreaseInDeferredChargesAndOtherAssets" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_CertainTradeNamesMember" name="CertainTradeNamesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_PurchasePrice" name="PurchasePrice" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_CreditFacilityMember" name="CreditFacilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_ContractLiabilityCurrent" name="ContractLiabilityCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_CashHeldOutsideDomesticTerritory" name="CashHeldOutsideDomesticTerritory" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" name="ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_KemcoSystemsCoLlcMember" name="KemcoSystemsCoLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_PercentageOfEquityHoldInJointVenture" name="PercentageOfEquityHoldInJointVenture" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false"/>
  <xsd:element id="ceco_GeneralRubberLlcMember" name="GeneralRubberLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_IndustrialProcessSolutionsMember" name="IndustrialProcessSolutionsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers" name="IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_EarnoutPayments" name="EarnoutPayments" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_DeferredConsiderationPaidForAcquisitions" name="DeferredConsiderationPaidForAcquisitions" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_CompanyReceivedWorkingCapital" name="CompanyReceivedWorkingCapital" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm" name="ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ceco_OtherNonInvesteesMember" name="OtherNonInvesteesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_AdditionalConsideration" name="AdditionalConsideration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_TermDebtMember" name="TermDebtMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_Ds21CoLtdMember" name="Ds21CoLtdMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_TransfersFromIndefiniteLifeClassification" name="TransfersFromIndefiniteLifeClassification" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_JointVentureAgreementMember" name="JointVentureAgreementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_CustomerListsAndTradeNameMember" name="CustomerListsAndTradeNameMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_AmortizationAndEarnoutExpenses" name="AmortizationAndEarnoutExpenses" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_ExecutiveTransitionExpenses" name="ExecutiveTransitionExpenses" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_EarnOutFairValue" name="EarnOutFairValue" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_VotingInterestInJointVenture" name="VotingInterestInJointVenture" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false"/>
  <xsd:element id="ceco_LeaseLiabilitiesCurrent" name="LeaseLiabilitiesCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" name="ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_PaymentsOnFinanceLeasesAndFinancingLiability" name="PaymentsOnFinanceLeasesAndFinancingLiability" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock" name="NewAccountingStandardsNotYetAdoptedPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ceco_InstallmentsPaid" name="InstallmentsPaid" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_CreditAgreementMember" name="CreditAgreementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_EngineeredSystemsMember" name="EngineeredSystemsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable" name="ScheduleOfGoodwillAndOtherIntangibleAssetsTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_InventoryReserveExpenseBenefit" name="InventoryReserveExpenseBenefit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_BankGuaranteesMember" name="BankGuaranteesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_NetherlandsFacilityMember" name="NetherlandsFacilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_MaximumConsolidatedLeverageRatio" name="MaximumConsolidatedLeverageRatio" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false"/>
  <xsd:element id="ceco_IncreaseInEstimatedFairValueOfEarnout" name="IncreaseInEstimatedFairValueOfEarnout" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ceco_EffoxFlextorMadderMember" name="EffoxFlextorMadderMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_ForeignCurrencyTranslationAdjustmentMember" name="ForeignCurrencyTranslationAdjustmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_EuroDenominatedBankGuaranteeMember" name="EuroDenominatedBankGuaranteeMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_NotesPayableCurrent1" name="NotesPayableCurrent1" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_MalvarEngineeringLimitedMember" name="MalvarEngineeringLimitedMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_TranscendSolutionMember" name="TranscendSolutionMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_FederalFundsRateMember" name="FederalFundsRateMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_ContractLiabilitiesRecognizedAsRevenue" name="ContractLiabilitiesRecognizedAsRevenue" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ceco_FairValueOfFinancialInstrumentsLineItems" name="FairValueOfFinancialInstrumentsLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_TechnologyMember" name="TechnologyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_RetainageReceivablesOnContractsPeriod" name="RetainageReceivablesOnContractsPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ceco_WesternAirDuctsLtdMember" name="WesternAirDuctsLtdMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_ScheduleOfFairValueOfFinancialInstrumentsTable" name="ScheduleOfFairValueOfFinancialInstrumentsTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_StateAndForeignAuthoritiesMember" name="StateAndForeignAuthoritiesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_IncomeTaxesLineItems" name="IncomeTaxesLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ceco_HoldbackPayble" name="HoldbackPayble" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ceco_EnvironmentalIntegratedSolutionsMember" name="EnvironmentalIntegratedSolutionsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ceco_SeniorSecuredTermLoanMember" name="SeniorSecuredTermLoanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>9
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975440999424">
<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">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jul. 18, 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_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jun. 30,  2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">Q2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CECO<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">CECO ENVIRONMENTAL CORP.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000003197<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">0-07099<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">13-2566064<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">14651 North Dallas Parkway<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">Suite 500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Dallas<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">TX<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">75254<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">214<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">357-6181<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">34,960,522<span></span>
</td>
</tr>
<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_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</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_DocumentQuarterlyReport', window );">Document Quarterly Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, par value $0.01 per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an quarterly report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-Q<br> -Number 240<br> -Section 308<br> -Subsection a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentQuarterlyReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_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>10
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975441626752">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_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">$ 36,523<span></span>
</td>
<td class="nump">$ 54,779<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashCurrent', window );">Restricted cash</a></td>
<td class="nump">391<span></span>
</td>
<td class="nump">669<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, net allowances of $6,582 and $6,460</a></td>
<td class="nump">126,974<span></span>
</td>
<td class="nump">112,733<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Costs and estimated earnings in excess of billings on uncompleted contracts</a></td>
<td class="nump">55,378<span></span>
</td>
<td class="nump">66,574<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories, net</a></td>
<td class="nump">38,475<span></span>
</td>
<td class="nump">34,089<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">20,414<span></span>
</td>
<td class="nump">11,769<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidTaxes', window );">Prepaid income taxes</a></td>
<td class="nump">3,215<span></span>
</td>
<td class="nump">824<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">281,370<span></span>
</td>
<td class="nump">281,437<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property, plant and equipment, net</a></td>
<td class="nump">30,290<span></span>
</td>
<td class="nump">26,237<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Right-of-use assets from operating leases</a></td>
<td class="nump">14,137<span></span>
</td>
<td class="nump">16,256<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">211,144<span></span>
</td>
<td class="nump">211,326<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets &#8211; finite life, net</a></td>
<td class="nump">46,086<span></span>
</td>
<td class="nump">50,461<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill', window );">Intangible assets &#8211; indefinite life</a></td>
<td class="nump">9,522<span></span>
</td>
<td class="nump">9,570<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred income taxes</a></td>
<td class="nump">263<span></span>
</td>
<td class="nump">304<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredCostsAndOtherAssets', window );">Deferred charges and other assets</a></td>
<td class="nump">5,321<span></span>
</td>
<td class="nump">4,700<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">598,133<span></span>
</td>
<td class="nump">600,291<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Current portion of debt</a></td>
<td class="nump">10,580<span></span>
</td>
<td class="nump">10,488<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">90,944<span></span>
</td>
<td class="nump">87,691<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">44,736<span></span>
</td>
<td class="nump">44,301<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Billings in excess of costs and estimated earnings on uncompleted contracts</a></td>
<td class="nump">59,851<span></span>
</td>
<td class="nump">56,899<span></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_ceco_NotesPayableCurrent1', window );">Notes payable</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2,500<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesCurrent', window );">Income taxes payable</a></td>
<td class="nump">1,212<span></span>
</td>
<td class="nump">1,227<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">207,323<span></span>
</td>
<td class="nump">203,106<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">11,196<span></span>
</td>
<td class="nump">12,644<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Debt, less current portion</a></td>
<td class="nump">120,246<span></span>
</td>
<td class="nump">126,795<span></span>
</td>
</tr>
<tr class="ro">
<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 tax liability, net</a></td>
<td class="nump">9,949<span></span>
</td>
<td class="nump">8,838<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease liabilities</a></td>
<td class="nump">9,607<span></span>
</td>
<td class="nump">11,417<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">358,321<span></span>
</td>
<td class="nump">362,800<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (See Note 14)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders&#8217; equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock, $.01 par value; 10,000 shares authorized, none issued</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $.01 par value; 100,000,000 shares authorized, 34,923,701 and 34,835,293 shares issued and outstanding at June 30, 2024 and December 31, 2023, respectively</a></td>
<td class="nump">349<span></span>
</td>
<td class="nump">348<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Capital in excess of par value</a></td>
<td class="nump">251,560<span></span>
</td>
<td class="nump">254,956<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated loss</a></td>
<td class="num">(394)<span></span>
</td>
<td class="num">(6,387)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss</a></td>
<td class="num">(16,476)<span></span>
</td>
<td class="num">(16,274)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total CECO shareholders' equity</a></td>
<td class="nump">235,039<span></span>
</td>
<td class="nump">232,643<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MinorityInterest', window );">Non-controlling interest</a></td>
<td class="nump">4,773<span></span>
</td>
<td class="nump">4,848<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Total shareholders' equity</a></td>
<td class="nump">239,812<span></span>
</td>
<td class="nump">237,491<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and shareholders' equity</a></td>
<td class="nump">$ 598,133<span></span>
</td>
<td class="nump">$ 600,291<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_NotesPayableCurrent1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Notes Payable Current is the part of Total Debt</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;">ceco_NotesPayableCurrent1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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://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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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_AccruedIncomeTaxesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<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_AccruedIncomeTaxesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_AdditionalPaidInCapitalCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_AdditionalPaidInCapitalCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCostsAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred cost assets and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCostsAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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://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)(1)<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_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 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(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<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_IndefiniteLivedIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 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 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-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/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://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 22: 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-26)<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_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(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_LongTermDebtCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MinorityInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 noncontrolling interest. Excludes temporary equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 6: 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 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)(iv))<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)(5))<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 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 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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 12: 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(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 13: 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.31)<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_MinorityInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_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_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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)(21))<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(28))<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_PreferredStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<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><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 5<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482955/340-10-05-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_PrepaidTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_RestrictedCashCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash restricted as to withdrawal or usage, classified as current. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 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/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 and noncontrolling interest. Excludes temporary equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483421/250-10-45-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483421/250-10-45-23<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483421/250-10-45-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479654/326-10-65-5<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (i)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (a)(3)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483550/848-10-65-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479343/105-10-65-6<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479343/105-10-65-6<br><br>Reference 14: 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 (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 15: 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 (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479654/326-10-65-4<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480336/718-10-65-15<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480336/718-10-65-15<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480336/718-10-65-15<br><br>Reference 22: 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)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 23: 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)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-5<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481674/830-30-50-1<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-17<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-20<br><br>Reference 29: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-3<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-3<br><br>Reference 32: 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 33: 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 34: 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 35: 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 36: 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 37: http://www.xbrl.org/2003/role/disclosureRef<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 38: 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 39: 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 40: 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 41: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-15<br><br>Reference 42: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-16<br><br>Reference 43: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4I<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4I<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>11
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975444421952">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Statement of Financial Position [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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Accounts receivable, net allowances</a></td>
<td class="nump">$ 6,582<span></span>
</td>
<td class="nump">$ 6,460<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock, par value</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized</a></td>
<td class="nump">10,000<span></span>
</td>
<td class="nump">10,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized</a></td>
<td class="nump">100,000,000<span></span>
</td>
<td class="nump">100,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued</a></td>
<td class="nump">34,923,701<span></span>
</td>
<td class="nump">34,835,293<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common Stock, shares outstanding</a></td>
<td class="nump">34,923,701<span></span>
</td>
<td class="nump">34,835,293<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_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_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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(28))<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_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975441912976">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Income (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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>Income Statement [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 );">Net sales</a></td>
<td class="nump">$ 137,522<span></span>
</td>
<td class="nump">$ 129,181<span></span>
</td>
<td class="nump">$ 263,854<span></span>
</td>
<td class="nump">$ 241,744<span></span>
</td>
</tr>
<tr class="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">88,475<span></span>
</td>
<td class="nump">89,364<span></span>
</td>
<td class="nump">169,675<span></span>
</td>
<td class="nump">167,034<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">49,047<span></span>
</td>
<td class="nump">39,817<span></span>
</td>
<td class="nump">94,179<span></span>
</td>
<td class="nump">74,710<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling and administrative expenses</a></td>
<td class="nump">36,465<span></span>
</td>
<td class="nump">28,451<span></span>
</td>
<td class="nump">71,372<span></span>
</td>
<td class="nump">55,644<span></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_ceco_AmortizationAndEarnoutExpenses', window );">Amortization and earnout expenses</a></td>
<td class="nump">2,210<span></span>
</td>
<td class="nump">2,273<span></span>
</td>
<td class="nump">4,419<span></span>
</td>
<td class="nump">4,020<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationIntegrationRelatedCosts', window );">Acquisition and integration expenses</a></td>
<td class="nump">476<span></span>
</td>
<td class="nump">332<span></span>
</td>
<td class="nump">666<span></span>
</td>
<td class="nump">824<span></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_ceco_ExecutiveTransitionExpenses', window );">Executive transition expenses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">158<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">158<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring expenses</a></td>
<td class="nump">414<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">554<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_AsbestosLitigationExpenses', window );">Asbestos litigation expenses</a></td>
<td class="nump">225<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">225<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_OperatingIncomeLoss', window );">Income from operations</a></td>
<td class="nump">9,257<span></span>
</td>
<td class="nump">8,603<span></span>
</td>
<td class="nump">16,943<span></span>
</td>
<td class="nump">14,064<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other (expense) income, net</a></td>
<td class="num">(679)<span></span>
</td>
<td class="nump">121<span></span>
</td>
<td class="num">(2,192)<span></span>
</td>
<td class="num">(453)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest expense</a></td>
<td class="num">(3,254)<span></span>
</td>
<td class="num">(3,750)<span></span>
</td>
<td class="num">(6,667)<span></span>
</td>
<td class="num">(6,158)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income taxes</a></td>
<td class="nump">5,324<span></span>
</td>
<td class="nump">4,974<span></span>
</td>
<td class="nump">8,084<span></span>
</td>
<td class="nump">7,453<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">394<span></span>
</td>
<td class="nump">984<span></span>
</td>
<td class="nump">1,062<span></span>
</td>
<td class="nump">993<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_ProfitLoss', window );">Net income</a></td>
<td class="nump">4,930<span></span>
</td>
<td class="nump">3,990<span></span>
</td>
<td class="nump">7,022<span></span>
</td>
<td class="nump">6,460<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLossAttributableToNoncontrollingInterest', window );">Non-controlling interest</a></td>
<td class="num">(445)<span></span>
</td>
<td class="num">(266)<span></span>
</td>
<td class="num">(1,029)<span></span>
</td>
<td class="num">(759)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income attributable to CECO Environmental Corp.</a></td>
<td class="nump">$ 4,485<span></span>
</td>
<td class="nump">$ 3,724<span></span>
</td>
<td class="nump">$ 5,993<span></span>
</td>
<td class="nump">$ 5,701<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings per share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic</a></td>
<td class="nump">$ 0.13<span></span>
</td>
<td class="nump">$ 0.11<span></span>
</td>
<td class="nump">$ 0.17<span></span>
</td>
<td class="nump">$ 0.17<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">$ 0.12<span></span>
</td>
<td class="nump">$ 0.11<span></span>
</td>
<td class="nump">$ 0.17<span></span>
</td>
<td class="nump">$ 0.16<span></span>
</td>
</tr>
<tr class="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>Weighted average number of common shares outstanding:</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic</a></td>
<td class="nump">34,918,412<span></span>
</td>
<td class="nump">34,619,216<span></span>
</td>
<td class="nump">34,881,625<span></span>
</td>
<td class="nump">34,531,050<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted</a></td>
<td class="nump">36,302,664<span></span>
</td>
<td class="nump">35,143,782<span></span>
</td>
<td class="nump">36,239,331<span></span>
</td>
<td class="nump">35,171,727<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_AmortizationAndEarnoutExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortization and earnout expenses</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ceco_AmortizationAndEarnoutExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_AsbestosLitigationExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asbestos Litigation Expenses</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ceco_AsbestosLitigationExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_ExecutiveTransitionExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Executive transition expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ceco_ExecutiveTransitionExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationIntegrationRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Costs incurred to effect a business combination which have been expensed during the period. Such costs could include business integration costs, systems integration and conversion costs, and severance and other employee-related costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationIntegrationRelatedCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the cost of borrowed funds accounted for as interest expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483581/946-220-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482925/835-30-45-3<br><br>Reference 6: 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.9)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483013/835-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_NetIncomeLossAttributableToNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of Net 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 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 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-6<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4J<br><br>Reference 7: 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 8: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLossAttributableToNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 consolidated profit or loss for the period, net of income taxes, including the portion attributable to the 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 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 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 5: 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 6: 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 7: 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 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-3<br><br>Reference 10: 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 11: 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(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 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 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<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 16: http://www.xbrl.org/2009/role/commonPracticeRef<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 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 18: 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<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)(5))<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 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 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<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)(iv))<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)(5))<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 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 28: 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 29: 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 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 (c)<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 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 32: 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 33: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4J<br><br>Reference 34: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4K<br><br>Reference 35: 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 36: 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 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-2<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482047/420-10-45-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-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_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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>13
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975443022864">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Comprehensive Income (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [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_ProfitLoss', window );">Net income</a></td>
<td class="nump">$ 4,930<span></span>
</td>
<td class="nump">$ 3,990<span></span>
</td>
<td class="nump">$ 7,022<span></span>
</td>
<td class="nump">$ 6,460<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract', window );"><strong>Other comprehensive income, net of tax:</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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Foreign currency translation (loss) gain</a></td>
<td class="num">(856)<span></span>
</td>
<td class="nump">139<span></span>
</td>
<td class="num">(202)<span></span>
</td>
<td class="nump">905<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">$ 4,074<span></span>
</td>
<td class="nump">$ 4,129<span></span>
</td>
<td class="nump">$ 6,820<span></span>
</td>
<td class="nump">$ 7,365<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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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, attributable to parent 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 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 consolidated profit or loss for the period, net of income taxes, including the portion attributable to the 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 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 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 5: 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 6: 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 7: 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 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-3<br><br>Reference 10: 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 11: 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(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 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 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<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 16: http://www.xbrl.org/2009/role/commonPracticeRef<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 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 18: 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<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)(5))<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 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 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<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)(iv))<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)(5))<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 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 28: 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 29: 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 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 (c)<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 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 32: 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 33: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4J<br><br>Reference 34: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4K<br><br>Reference 35: 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 36: 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 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-2<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975439351184">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Shareholders' Equity (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Capital in Excess of Par Value [Member]</div></th>
<th class="th"><div>Accumulated Loss [Member]</div></th>
<th class="th"><div>Accumulated Other Comprehensive Loss [Member]</div></th>
<th class="th"><div>Noncontrolling Interest [Member]</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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Beginning Balance at Dec. 31, 2022</a></td>
<td class="nump">$ 218,148<span></span>
</td>
<td class="nump">$ 344<span></span>
</td>
<td class="nump">$ 250,174<span></span>
</td>
<td class="num">$ (19,298)<span></span>
</td>
<td class="num">$ (17,996)<span></span>
</td>
<td class="nump">$ 4,924<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 );">Beginning Balance, Shares at Dec. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,382<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ProfitLoss', window );">Net income</a></td>
<td class="nump">2,469<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">491<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">612<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">611<span></span>
</td>
<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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">52<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockIssuedDuringPeriodValueIssuedForServices', window );">Restricted stock units issued</a></td>
<td class="num">(621)<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="num">(622)<span></span>
</td>
<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_StockIssuedDuringPeriodSharesIssuedForServices', window );">Restricted stock units issued, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">123<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share based compensation earned</a></td>
<td class="nump">808<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">808<span></span>
</td>
<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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Translation gain (loss)</a></td>
<td class="nump">766<span></span>
</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">766<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Ending Balance at Mar. 31, 2023</a></td>
<td class="nump">222,182<span></span>
</td>
<td class="nump">$ 346<span></span>
</td>
<td class="nump">250,971<span></span>
</td>
<td class="num">(17,320)<span></span>
</td>
<td class="num">(17,230)<span></span>
</td>
<td class="nump">5,415<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 );">Ending Balance, Shares at Mar. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,557<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Beginning Balance at Dec. 31, 2022</a></td>
<td class="nump">218,148<span></span>
</td>
<td class="nump">$ 344<span></span>
</td>
<td class="nump">250,174<span></span>
</td>
<td class="num">(19,298)<span></span>
</td>
<td class="num">(17,996)<span></span>
</td>
<td class="nump">4,924<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 );">Beginning Balance, Shares at Dec. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,382<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ProfitLoss', window );">Net income</a></td>
<td class="nump">6,460<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Translation gain (loss)</a></td>
<td class="nump">$ 905<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Common stock repurchase and retirement, 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="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Ending Balance at Jun. 30, 2023</a></td>
<td class="nump">$ 227,148<span></span>
</td>
<td class="nump">$ 347<span></span>
</td>
<td class="nump">252,406<span></span>
</td>
<td class="num">(13,596)<span></span>
</td>
<td class="num">(17,091)<span></span>
</td>
<td class="nump">5,082<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 );">Ending Balance, Shares at Jun. 30, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,738<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Beginning Balance at Mar. 31, 2023</a></td>
<td class="nump">222,182<span></span>
</td>
<td class="nump">$ 346<span></span>
</td>
<td class="nump">250,971<span></span>
</td>
<td class="num">(17,320)<span></span>
</td>
<td class="num">(17,230)<span></span>
</td>
<td class="nump">5,415<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 );">Beginning Balance, Shares at Mar. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,557<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ProfitLoss', window );">Net income</a></td>
<td class="nump">3,990<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,724<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">266<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">317<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">317<span></span>
</td>
<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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueIssuedForServices', window );">Restricted stock units issued</a></td>
<td class="num">(270)<span></span>
</td>
<td class="num">$ (1)<span></span>
</td>
<td class="num">(271)<span></span>
</td>
<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_StockIssuedDuringPeriodSharesIssuedForServices', window );">Restricted stock units issued, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">132<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share based compensation earned</a></td>
<td class="nump">1,389<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,389<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Share based compensation earned, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Translation gain (loss)</a></td>
<td class="nump">139<span></span>
</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">139<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders', window );">Noncontrolling interest distribution</a></td>
<td class="num">$ (599)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(599)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Common stock repurchase and retirement, 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="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Ending Balance at Jun. 30, 2023</a></td>
<td class="nump">$ 227,148<span></span>
</td>
<td class="nump">$ 347<span></span>
</td>
<td class="nump">252,406<span></span>
</td>
<td class="num">(13,596)<span></span>
</td>
<td class="num">(17,091)<span></span>
</td>
<td class="nump">5,082<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 );">Ending Balance, Shares at Jun. 30, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,738<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Beginning Balance at Dec. 31, 2023</a></td>
<td class="nump">237,491<span></span>
</td>
<td class="nump">$ 348<span></span>
</td>
<td class="nump">254,956<span></span>
</td>
<td class="num">(6,387)<span></span>
</td>
<td class="num">(16,274)<span></span>
</td>
<td class="nump">4,848<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 );">Beginning Balance, Shares at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,835<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ProfitLoss', window );">Net income</a></td>
<td class="nump">2,093<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,508<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">585<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">113<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">113<span></span>
</td>
<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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockIssuedDuringPeriodValueIssuedForServices', window );">Restricted stock units issued</a></td>
<td class="num">(2,202)<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="num">(2,204)<span></span>
</td>
<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_StockIssuedDuringPeriodSharesIssuedForServices', window );">Restricted stock units issued, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">195<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share based compensation earned</a></td>
<td class="nump">1,808<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,808<span></span>
</td>
<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_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Share based compensation earned, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Translation gain (loss)</a></td>
<td class="nump">654<span></span>
</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">654<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders', window );">Noncontrolling interest distribution</a></td>
<td class="num">(804)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(804)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Common stock repurchase and retirement</a></td>
<td class="num">(3,001)<span></span>
</td>
<td class="num">$ (1)<span></span>
</td>
<td class="num">(3,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Common stock repurchase and retirement, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(144)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Ending Balance at Mar. 31, 2024</a></td>
<td class="nump">236,152<span></span>
</td>
<td class="nump">$ 349<span></span>
</td>
<td class="nump">251,673<span></span>
</td>
<td class="num">(4,879)<span></span>
</td>
<td class="num">(15,620)<span></span>
</td>
<td class="nump">4,629<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 );">Ending Balance, Shares at Mar. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,908<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Beginning Balance at Dec. 31, 2023</a></td>
<td class="nump">237,491<span></span>
</td>
<td class="nump">$ 348<span></span>
</td>
<td class="nump">254,956<span></span>
</td>
<td class="num">(6,387)<span></span>
</td>
<td class="num">(16,274)<span></span>
</td>
<td class="nump">4,848<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 );">Beginning Balance, Shares at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,835<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ProfitLoss', window );">Net income</a></td>
<td class="nump">7,022<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Translation gain (loss)</a></td>
<td class="num">(202)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockRepurchasedDuringPeriodValue', window );">Common stock repurchase and retirement</a></td>
<td class="num">$ (5,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Common stock repurchase and retirement, Shares</a></td>
<td class="nump">230,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Ending Balance at Jun. 30, 2024</a></td>
<td class="nump">$ 239,812<span></span>
</td>
<td class="nump">$ 349<span></span>
</td>
<td class="nump">251,560<span></span>
</td>
<td class="num">(394)<span></span>
</td>
<td class="num">(16,476)<span></span>
</td>
<td class="nump">4,773<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 );">Ending Balance, Shares at Jun. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,924<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Beginning Balance at Mar. 31, 2024</a></td>
<td class="nump">236,152<span></span>
</td>
<td class="nump">$ 349<span></span>
</td>
<td class="nump">251,673<span></span>
</td>
<td class="num">(4,879)<span></span>
</td>
<td class="num">(15,620)<span></span>
</td>
<td class="nump">4,629<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 );">Beginning Balance, Shares at Mar. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,908<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ProfitLoss', window );">Net income</a></td>
<td class="nump">4,930<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,485<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">445<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">161<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">161<span></span>
</td>
<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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockIssuedDuringPeriodValueIssuedForServices', window );">Restricted stock units issued</a></td>
<td class="num">(465)<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="num">(466)<span></span>
</td>
<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_StockIssuedDuringPeriodSharesIssuedForServices', window );">Restricted stock units issued, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">92<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share based compensation earned</a></td>
<td class="nump">2,191<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,191<span></span>
</td>
<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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Translation gain (loss)</a></td>
<td class="num">(856)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(856)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders', window );">Noncontrolling interest distribution</a></td>
<td class="num">(301)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(301)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Common stock repurchase and retirement</a></td>
<td class="num">$ (2,000)<span></span>
</td>
<td class="num">$ (1)<span></span>
</td>
<td class="num">(1,999)<span></span>
</td>
<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_StockRepurchasedDuringPeriodShares', window );">Common stock repurchase and retirement, Shares</a></td>
<td class="nump">86,000<span></span>
</td>
<td class="num">(86)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest', window );">Ending Balance at Jun. 30, 2024</a></td>
<td class="nump">$ 239,812<span></span>
</td>
<td class="nump">$ 349<span></span>
</td>
<td class="nump">$ 251,560<span></span>
</td>
<td class="num">$ (394)<span></span>
</td>
<td class="num">$ (16,476)<span></span>
</td>
<td class="nump">$ 4,773<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 );">Ending Balance, Shares at Jun. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,924<span></span>
</td>
<td class="text">&#160;<span></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_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Decrease in noncontrolling interest balance from payment of dividends or other distributions by the non-wholly owned subsidiary or partially owned entity, included in the consolidation of the parent entity, to the noncontrolling interest holders.</p></div>
<a href="javascript: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 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_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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, attributable to parent 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 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 consolidated profit or loss for the period, net of income taxes, including the portion attributable to the 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 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 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 5: 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 6: 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 7: 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 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-3<br><br>Reference 10: 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 11: 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(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 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 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<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 16: http://www.xbrl.org/2009/role/commonPracticeRef<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 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 18: 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<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)(5))<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 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 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<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)(iv))<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)(5))<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 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 28: 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 29: 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 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 (c)<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 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 32: 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 33: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4J<br><br>Reference 34: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4K<br><br>Reference 35: 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 36: 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 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-2<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StockIssuedDuringPeriodSharesIssuedForServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 in lieu of cash for services contributed to the entity. Number of shares includes, but is not limited to, shares issued for services contributed by vendors and founders.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesIssuedForServices</td>
</tr>
<tr>
<td style="padding-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_StockIssuedDuringPeriodSharesShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_StockIssuedDuringPeriodSharesShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://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 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(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_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueIssuedForServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued in lieu of cash for services contributed to the entity. Value of the stock issued includes, but is not limited to, services contributed by vendors and founders.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueIssuedForServices</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://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 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(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_StockIssuedDuringPeriodValueShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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 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.29-31)<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_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 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 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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 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(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_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 5: 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(4)(b))<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(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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(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_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 and noncontrolling interest. Excludes temporary equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483421/250-10-45-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483421/250-10-45-23<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483421/250-10-45-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479654/326-10-65-5<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (h)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (i)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (a)(3)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483550/848-10-65-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479343/105-10-65-6<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479343/105-10-65-6<br><br>Reference 14: 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 (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 15: 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 (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479654/326-10-65-4<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480336/718-10-65-15<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480336/718-10-65-15<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480336/718-10-65-15<br><br>Reference 22: 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)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 23: 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)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482765/220-10-50-5<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481674/830-30-50-1<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-17<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-20<br><br>Reference 29: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-3<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-3<br><br>Reference 32: 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 33: 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 34: 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 35: 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 36: 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 37: http://www.xbrl.org/2003/role/disclosureRef<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 38: 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 39: 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 40: 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 41: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-15<br><br>Reference 42: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481231/810-10-45-16<br><br>Reference 43: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 55<br> -Paragraph 4I<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4I<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>15
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975443645568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Cash Flows (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_ProfitLoss', window );">Net income</a></td>
<td class="nump">$ 7,022<span></span>
</td>
<td class="nump">$ 6,460<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to net cash provided by (used in) operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">6,973<span></span>
</td>
<td class="nump">5,650<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionGainLossUnrealized', window );">Unrealized foreign currency gain (loss)</a></td>
<td class="nump">691<span></span>
</td>
<td class="num">(863)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Fair value adjustment to earnout liabilities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">296<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment', window );">Gain on sale of property and equipment</a></td>
<td class="nump">126<span></span>
</td>
<td class="nump">78<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfDebtDiscountPremium', window );">Debt discount amortization</a></td>
<td class="nump">240<span></span>
</td>
<td class="nump">182<span></span>
</td>
</tr>
<tr class="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 );">Share-based compensation expense</a></td>
<td class="nump">3,847<span></span>
</td>
<td class="nump">1,967<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad debt expense (recoveries)</a></td>
<td class="nump">267<span></span>
</td>
<td class="num">(23)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_InventoryReserveExpenseBenefit', window );">Inventory reserve expense</a></td>
<td class="nump">669<span></span>
</td>
<td class="nump">551<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNoncashIncomeExpense', window );">Other</a></td>
<td class="nump">22<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_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities, net of acquisitions:</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_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable</a></td>
<td class="num">(17,295)<span></span>
</td>
<td class="num">(39,181)<span></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_ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract', window );">Costs and estimated earnings in excess of billings on uncompleted contracts</a></td>
<td class="nump">10,610<span></span>
</td>
<td class="nump">9,596<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="num">(5,151)<span></span>
</td>
<td class="num">(4,081)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expense and other current assets</a></td>
<td class="num">(11,164)<span></span>
</td>
<td class="num">(8,319)<span></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_ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets', window );">Deferred charges and other assets</a></td>
<td class="num">(412)<span></span>
</td>
<td class="num">(306)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities', window );">Accounts payable</a></td>
<td class="nump">13,719<span></span>
</td>
<td class="nump">6,594<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities', window );">Accrued expenses</a></td>
<td class="nump">1,566<span></span>
</td>
<td class="num">(2,692)<span></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_ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings', window );">Billings in excess of costs and estimated earnings on uncompleted contracts</a></td>
<td class="nump">3,060<span></span>
</td>
<td class="nump">26,005<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable', window );">Income taxes payable</a></td>
<td class="nump">68<span></span>
</td>
<td class="nump">601<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities', window );">Other liabilities</a></td>
<td class="num">(6,967)<span></span>
</td>
<td class="num">(3,126)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by (used in) operating activities</a></td>
<td class="nump">7,891<span></span>
</td>
<td class="num">(611)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Acquisitions of property and equipment</a></td>
<td class="num">(7,233)<span></span>
</td>
<td class="num">(3,919)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForProceedsFromInvestments', window );">Net cash received (paid) for acquisitions</a></td>
<td class="nump">422<span></span>
</td>
<td class="num">(24,142)<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">(6,811)<span></span>
</td>
<td class="num">(28,061)<span></span>
</td>
</tr>
<tr class="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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_BorrowingsOnRevolvingLineOfCredit', window );">Borrowings on revolving credit lines</a></td>
<td class="nump">21,700<span></span>
</td>
<td class="nump">65,300<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromRepaymentsOfLinesOfCredit', window );">Repayments on revolving credit lines</a></td>
<td class="num">(23,200)<span></span>
</td>
<td class="num">(33,400)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RepaymentsOfLongTermDebt', window );">Repayments of long-term debt</a></td>
<td class="num">(5,198)<span></span>
</td>
<td class="num">(1,652)<span></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_ceco_PaymentsOnFinanceLeasesAndFinancingLiability', window );">Payments on finance leases and financing liability</a></td>
<td class="num">(458)<span></span>
</td>
<td class="num">(450)<span></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_ceco_DeferredConsiderationPaidForAcquisitions', window );">Deferred consideration paid for acquisitions</a></td>
<td class="num">(2,050)<span></span>
</td>
<td class="num">(857)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities', window );">Earnout payments</a></td>
<td class="num">(1,672)<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_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions', window );">Proceeds from employee stock purchase plan and exercise of stock options</a></td>
<td class="nump">418<span></span>
</td>
<td class="nump">1,156<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToMinorityShareholders', window );">Noncontrolling interest distributions</a></td>
<td class="num">(1,105)<span></span>
</td>
<td class="num">(599)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Common stock repurchase</a></td>
<td class="num">(5,000)<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) provided by financing activities</a></td>
<td class="num">(16,565)<span></span>
</td>
<td class="nump">29,498<span></span>
</td>
</tr>
<tr class="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, cash equivalents and restricted cash</a></td>
<td class="num">(3,049)<span></span>
</td>
<td class="nump">1,141<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 (decrease) increase in cash, cash equivalents and restricted cash</a></td>
<td class="num">(18,534)<span></span>
</td>
<td class="nump">1,967<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, cash equivalents and restricted cash at beginning of period</a></td>
<td class="nump">55,448<span></span>
</td>
<td class="nump">46,585<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, cash equivalents and restricted cash at end of period</a></td>
<td class="nump">36,914<span></span>
</td>
<td class="nump">48,552<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Cash paid during the period for:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Interest</a></td>
<td class="nump">6,574<span></span>
</td>
<td class="nump">5,380<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income taxes</a></td>
<td class="nump">$ 3,801<span></span>
</td>
<td class="nump">$ 7,605<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Payments of Contingent Consideration Related to Acquisitions Financing Activities</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;">ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_BorrowingsOnRevolvingLineOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Borrowings on revolving line of credit.</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;">ceco_BorrowingsOnRevolvingLineOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract with customer asset, increase decrease in cost in excess of billing on uncompleted contract.</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;">ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract with customer, liability increase decrease in billing in excess of cost of earnings.</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;">ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_DeferredConsiderationPaidForAcquisitions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Consideration Paid For Acquisitions</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;">ceco_DeferredConsiderationPaidForAcquisitions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (decrease) in deferred charges and other assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_InventoryReserveExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Inventory reserve expense benefit.</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;">ceco_InventoryReserveExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_PaymentsOnFinanceLeasesAndFinancingLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Payments on finance leases and financing liability.</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;">ceco_PaymentsOnFinanceLeasesAndFinancingLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfDebtDiscountPremium">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 included in interest expense to amortize debt discount and premium associated with the related debt instruments. Excludes amortization of financing costs. Alternate captions include noncash interest 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> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482925/835-30-45-1A<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.8)<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_AmortizationOfDebtDiscountPremium</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.</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/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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; including, but not limited to, 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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ForeignCurrencyTransactionGainLossUnrealized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of unrealized gain (loss) from foreign currency transaction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483581/946-220-45-6<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 1<br> -Subparagraph (SX 210.6-07(7)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481956/830-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481926/830-20-50-1<br><br>Reference 6: 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_ForeignCurrencyTransactionGainLossUnrealized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GainLossOnSaleOfPropertyPlantEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 property, plant and equipment assets, including oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_IncreaseDecreaseInAccruedIncomeTaxesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction.</p></div>
<a href="javascript: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_IncreaseDecreaseInAccruedIncomeTaxesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in accrued expenses, and obligations classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -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_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_IncreaseDecreaseInOtherOperatingLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherOperatingLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing 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_OtherNoncashIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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) included in net income that results in no cash inflow (outflow), classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNoncashIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PaymentsForProceedsFromInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net cash paid (received) associated with the acquisition or disposal of all investments, including securities and other assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForProceedsFromInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_PaymentsToMinorityShareholders">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to a noncontrolling interest. Includes, but not limited to, reduction of noncontrolling interest ownership. Excludes dividends paid to the noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToMinorityShareholders</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromRepaymentsOfLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net cash inflow or cash outflow from a contractual arrangement with the lender, including letter of credit, standby letter of credit and revolving credit arrangements, under which borrowings can be made up to a specific amount at any point in time with either short term or long term maturity that is collateralized (backed by pledge, mortgage or other lien in the entity's assets).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromRepaymentsOfLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 consolidated profit or loss for the period, net of income taxes, including the portion attributable to the 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 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 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 5: 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 6: 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 7: 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 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-3<br><br>Reference 10: 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 11: 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(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 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 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<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 16: http://www.xbrl.org/2009/role/commonPracticeRef<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 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 18: 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<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)(5))<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 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 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<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)(iv))<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)(5))<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 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 28: 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 29: 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 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 (c)<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 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 32: 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 33: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4J<br><br>Reference 34: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481175/810-10-55-4K<br><br>Reference 35: 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 36: 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 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-2<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<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_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<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 15<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975529001808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pay vs Performance Disclosure - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_ecd_PvpTable', window );"><strong>Pay vs Performance Disclosure</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_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="nump">$ 4,485<span></span>
</td>
<td class="nump">$ 3,724<span></span>
</td>
<td class="nump">$ 5,993<span></span>
</td>
<td class="nump">$ 5,701<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_PvpTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection v<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_PvpTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975529019984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non-Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrByIndTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrByIndTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975441635136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Reporting for Consolidated Financial Statements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Organization, Consolidation and Presentation of Financial Statements [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_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock', window );">Basis of Reporting for Consolidated Financial Statements</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">1.	Basis of Reporting for Consolidated Financial Statements</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements of CECO Environmental Corp. and its subsidiaries (the &#8220;Company,&#8221; &#8220;CECO,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;our&#8221;) have been prepared pursuant to the rules and regulations of the Securities and Exchange Commission (the &#8220;SEC&#8221;). Certain information and footnote disclosures normally included in financial statements prepared in accordance with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) have been condensed or omitted pursuant to those rules and regulations. In the opinion of management, the accompanying unaudited condensed consolidated financial statements of the Company contain all adjustments, consisting only of normal recurring adjustments, necessary to present fairly the financial position as of June 30, 2024 and the results of operations, cash flows and shareholders&#8217; equity for the three and six months ended June 30, 2024 and 2023. The results of operations for the three and six months ended June 30, 2024 are not necessarily indicative of the results to be expected for the full year. The balance sheet as of December 31, 2023 has been derived from the audited consolidated financial statements included in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2023 as filed with the SEC on March 5, 2024 (the &#8220;Form 10-K&#8221;).</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">These financial statements and accompanying notes should be read in conjunction with the audited financial statements and the notes thereto included in the Form 10-K.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Unless otherwise indicated, all balances within tables are in thousands, except per share amounts.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 organization, consolidation and basis of presentation of financial statements 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/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480424/946-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480424/946-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//810/tableOfContent<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 205<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//205/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_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975442180272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>New Financial Accounting Pronouncements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract', window );"><strong>Accounting Changes and Error Corrections [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock', window );">New Financial Accounting Pronouncements</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2.	New Financial Accounting Pronouncements</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounting Standards Adopted in Fiscal </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2024</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">None.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounting Standards to be Adopted</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In December 2023, the Financial Accounting Standards Board (the "FASB") issued Accounting Standards Update ("ASU") 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which addresses income tax disclosure requirements, primarily around the disclosure of the rate reconciliation and income taxes paid. The ASU is effective for fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#8217;s consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In November 2023, the FASB issued ASU 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which addresses segment disclosure requirements, primarily the disclosure of significant segment expenses. The ASU is effective for fiscal years beginning after December 15, 2023, and interim periods beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#8217;s consolidated financial statements.</span></p></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_AccountingChangesAndErrorCorrectionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingChangesAndErrorCorrectionsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 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)(ii)<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 (g)(2)(iii)<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 (g)(2)(iv)<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 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 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SAB Topic 11.M.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480530/250-10-S99-5<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 1<br> -Subparagraph (b)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (i)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479832/842-10-65-5<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (f)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479832/842-10-65-5<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483550/848-10-65-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479343/105-10-65-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482833/825-10-65-6<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482833/825-10-65-6<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482833/825-10-65-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479654/326-10-65-4<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479654/326-10-65-4<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483194/926-20-65-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483194/926-20-65-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483194/926-20-65-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480530/250-10-S99-6<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 30: 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)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 250<br> -Publisher FASB<br> -URI https://asc.fasb.org//250/tableOfContent<br><br>Reference 32: 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)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -SubTopic 20<br> -Topic 310<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481925/310-20-65-2<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -SubTopic 20<br> -Topic 310<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481925/310-20-65-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_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975448120192">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accounts Receivable<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesAbstract', window );"><strong>Receivables [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_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock', window );">Accounts Receivable</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3. </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">	Accounts Receivable 	</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">133,556</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">119,193</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Provision for credit losses</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,582</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,460</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accounts receivable, net</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">126,974</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">112,733</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable, net as of the beginning of the prior year period, or January 1, 2023, were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">83.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Balances billed but not paid by customers under retainage provisions in contracts within the Condensed Consolidated Balance Sheets amounted to approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">3.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million as of June 30, 2024 and December 31, 2023, respectively. Retainage receivables on contracts in progress are generally collected within a year or two subsequent to contract completion, and are recorded in either "Accounts receivable, net" or "Deferred charges and other assets" within the Condensed Consolidated Balance Sheets depending on timing of expected collection.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amounts charged to (recovered from) the provision for credit losses was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$(</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">)</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the three months ended June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">zero</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for the six months ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//310-10/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_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975442171184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Assets and Liabilities<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Disclosure Text Block [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_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock', window );">Contract Assets and Liabilities</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4.  </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">	Contract Assets and Liabilities 	</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Contract assets and liabilities as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:59.792%;"></td>
        <td style="width:1.68%;"></td>
        <td style="width:1%;"></td>
        <td style="width:16.423%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.68%;"></td>
        <td style="width:1%;"></td>
        <td style="width:16.423%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Costs and estimated earnings in excess of billings on uncompleted contracts</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">55,378</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">66,574</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Billings in excess of costs and estimated earnings on uncompleted contracts</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">59,851</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">56,899</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of the beginning of the prior year period, or January 1, 2023, costs and estimated earnings in excess of billings on uncompleted contracts and billings in excess of costs and estimated earnings on uncompleted contracts were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">71.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">32.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. The contract liabilities recorded in &#8220;Accrued expenses&#8221; on the Condensed Consolidated Balance Sheets were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">9.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">7.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">4.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024, December 31, 2023 and January 1, 2023, respectively. Approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">70</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of the Company's contract liabilities as of December 31, 2023 were recognized as revenue in the six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 detailed information about regulatory assets and liabilities, including current and noncurrent assets created when regulatory agencies permit the deferral of costs to the balance sheet that would otherwise be required to appear on the company's income statement and would be charged against current expenses or revenues, as well as current and noncurrent liabilities created when regulatory agencies permit.</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_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975438650048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventories</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5.	Inventories</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.553%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.683%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.683%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Raw materials</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">27,869</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">25,819</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Work in process</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,732</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,710</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Finished goods</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,905</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,368</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Obsolescence allowance</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,031</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,808</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total inventories</span></p></td>
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">38,475</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,089</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amounts credited to the allowance for obsolete inventory and charged to cost of sales amounted to </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the three months ended June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the six months ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//330/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_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975439424928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [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_GoodwillAndIntangibleAssetsDisclosureTextBlock', window );">Goodwill and Intangible Assets</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6.	Goodwill and Intangible Assets</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and the year ended December 31, 2023 was as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.009%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1%;"></td>
        <td style="width:12.703%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.382%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.421999999999999%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.421999999999999%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Year ended December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill / Tradename</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Tradename</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Tradename</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,326</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,570</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">183,197</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,508</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisitions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">110</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">27,152</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency translation</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">292</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">48</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">977</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">62</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,144</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,326</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,570</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the first quarter of 2024, the Company recorded measurement period adjustments related to the acquisition of Kemco Systems Co., LLC ("Kemco"), as discussed in Note 15, resulting in an increase to goodwill.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Finite life intangible assets as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.009%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1%;"></td>
        <td style="width:12.002%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1%;"></td>
        <td style="width:11.062%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.04%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.421999999999999%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.04%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.421999999999999%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Cost</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accum. Amort.</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Cost</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accum. Amort.</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Technology</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,508</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,388</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,517</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,061</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Customer lists</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">103,471</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">66,721</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">103,471</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">63,420</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Tradenames</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,094</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,688</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,094</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,001</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency adjustments</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,397</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">207</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,083</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">56</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total intangible assets &#8211; finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">132,676</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">86,590</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">132,999</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">82,538</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Finite life intangible asset activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023 was as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets &#8211; finite life, net at beginning of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">50,461</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,251</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization expense</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,315</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,430</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisitions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,708</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency adjustments</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">60</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">370</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets &#8211; finite life, net at end of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">46,086</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">42,899</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amortization expense of finite life intangible assets was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">2.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">1.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">3.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023, respectively. Amortization over the next five years for finite life intangibles is expected to be </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the remainder of 2024, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2025, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2026, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2027, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2028.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company completes its goodwill and indefinite life intangible asset impairment assessment annually in the fourth quarter, or more often if circumstances require. As a part of its impairment assessment, the Company first qualitatively assesses whether current events or changes in circumstances lead to a determination that it is more likely than not, defined as a likelihood of more than 50 percent, that the fair value of a reporting unit or indefinite life intangible asset is less than its carrying amount. If there is a qualitative determination that the fair value is more likely than not greater than the carrying value, the Company does not quantitatively test for impairment. If this qualitative assessment indicates a more likely than not potential that the asset may be impaired, the estimated fair value is calculated. If the estimated fair value is less than carrying value, an impairment charge is recorded.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of June 30, 2024, the Company reviewed its previous forecasts and assumptions based on its current projections, which are subject to various risks and uncertainties, including projected revenue, projected operational profit, terminal growth rates, and the cost of capital. The Company did not identify any triggering events during the three or six months ended June 30, 2024 that would require an interim impairment assessment of goodwill or intangible assets.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s assumptions about future conditions important to its assessment of potential impairment of its goodwill and indefinite life intangible assets are subject to uncertainty, and the Company will continue to monitor these conditions in future periods as new information becomes available, and will update its analysis accordingly.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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 350<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//350/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_GoodwillAndIntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975441534064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accrued Expenses</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7.	Accrued Expenses</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accrued expenses as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Compensation and related benefits</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,854</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,278</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued warranty</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,478</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,105</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Contract liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,197</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,875</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short-term operating lease liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,950</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,278</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,257</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,765</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accrued expenses</span></p></td>
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44,736</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44,301</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a),20,24)<br> -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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975442177136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Senior Debt<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Debt Disclosure [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 );">Senior Debt</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">8.	Senior Debt</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Debt as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:68.754%;"></td>
        <td style="width:1.58%;"></td>
        <td style="width:1%;"></td>
        <td style="width:11.902000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.58%;"></td>
        <td style="width:1%;"></td>
        <td style="width:12.182%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Outstanding borrowings under Credit Facility (defined below)<br/>&#160;&#160;&#160;&#160;&#160;Term loan payable in </span><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">quarterly</span></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;principal installments of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">550</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;through September<br/>&#160;&#160;&#160;&#160;&#160;2023, $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,232</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;through September 2025 and $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,977</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;thereafter with balance due upon<br/>&#160;&#160;&#160;&#160;&#160;maturity in December 2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Term loan</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">107,959</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">112,424</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Revolving credit facility</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,800</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,300</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total outstanding borrowings under the Credit Facility</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">123,759</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129,724</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Outstanding borrowings under the joint venture term debt</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,123</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,855</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Unamortized debt discount</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,056</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,296</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total outstanding borrowings</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">130,826</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,283</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;&#160;&#160;Less: current portion</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,580</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,488</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total debt, less current portion</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">120,246</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">126,795</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Scheduled principal payments under the Credit Facility and joint venture term debt are </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the remainder of 2024, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">11.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2025, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">111.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2026, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in 2027, and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">zero</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> in 2028.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Credit Facility</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of June 30, 2024 and December 31, 2023, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of letters of credit were outstanding, respectively. Total unused credit availability, in consideration of borrowing limitations, under the Company&#8217;s senior secured term loan and senior secured revolver loan with sub-facilities for letters of credit, swing-line loans and senior secured multi-currency loans (the "Credit Facility") was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">111.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">109.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million at June 30, 2024 and December 31, 2023, respectively. Revolving loans may be borrowed, repaid and reborrowed until December 17, 2026, at which time all outstanding balances of the Credit Facility must be repaid.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At the Company&#8217;s option, revolving loans and the term loans accrue interest at a per annum rate based on (a) either the highest of (i) the federal funds rate plus </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%, or (ii) the prime lending rate of the Agent (as defined in the Credit Facility), (b) Daily Simple SOFR plus the Daily Simple SOFR Adjustment of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.11</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> plus 1.0%, (c) 1.0%, plus a margin ranging from </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.75</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% depending on the Company&#8217;s Consolidated Leverage Ratio, or (d) a one/three/six-month Term SOFR Rate (as defined in the Credit Facility) plus the Term SOFR Adjustment ranging from </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.11</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.43</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% p</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">lus </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.75</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% to 3</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">.25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% depending on the Company&#8217;s Consolidated Leverage Ratio. Interest on swing line loans is the Base Rate.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Interest on Base Rate loans is payable quarterly in arrears on the last day of each calendar quarter and at maturity. Interest on Term SOFR rate loans is payable on the last date of each applicable Interest Period (as defined in the agreement), but in no event less than once every three months and at maturity. The weighted average stated interest rate on outstanding borrowings was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.88</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.29</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at June 30, 2024 and December 31, 2023, respectively. The effective interest rate was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.12</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.70</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at June 30, 2024 and December 31, 2023, respectively.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Under the terms of the Credit Facility, the Company is required to maintain certain financial covenants, including the maintenance of a Consolidated Net Leverage Ratio (as defined in the Credit Facility). In the third quarter of 2023, the Company entered into an Elevated Ratio Period resulting in a maximum Consolidated Net Leverage Ratio of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> through June 30, 2024, after which time it decreased to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.50</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> until the end of the term of the Credit Facility.<br/><br/>The Company has granted a security interest in substantially all of its assets to secure its obligations pursuant to the Credit Facility. The Company&#8217;s obligations under the Credit Facility are guaranteed by the Company&#8217;s domestic subsidiaries and such guaranty obligations are secured by a security interest on substantially all the assets of such subsidiaries, including certain real property. The Company&#8217;s obligations under the Credit Facility may also be guaranteed by the Company&#8217;s material foreign subsidiaries to the extent no adverse tax consequences would result to the Company.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of June 30, 2024 and December 31, 2023, the Company was in compliance with all related financial and other restrictive covenants under the Credit Facility.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Joint Venture Debt</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On March 7, 2022, the Company's Effox-Flextor-Mader, Inc. joint venture ("EFM JV"), for which the Company holds </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">63</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the equity, entered into a loan agreement secured by the assets of the EFM JV in the aggregate principal amount of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">11.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the acquisition of General Rubber, LLC ("GRC"). As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million was outstanding under the loan, respectively. Principal will be paid back to the lender monthly with the final installment due by February 27, 2027.  Interest is accrued at the per annum rate based on EFM JV's choice of the 1/3/6 month Term SOFR rate plus 3.25%, with a floor rate of 3.75%. Interest is paid monthly on the last day of each month. The interest rate at June 30, 2024 and December 31, 2023 was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.52</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.70</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively. As of June 30, 2024 and December 31, 2023, the EFM JV was in compliance with all related financial and other restrictive covenants under this loan agreement. This loan balance does not impact the Company&#8217;s borrowing capacity or the financial covenants under the Credit Facility. As of June 30, 2024, there were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">16.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in current assets, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">26.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in long-lived assets, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in total liabilities related to the EFM JV included in the Condensed Consolidated Balance Sheets. As of December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, there were $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">14.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in current assets, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">26.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in long-lived assets, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">12.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in total liabilities related to the EFM JV included in the Consolidated Balance Sheets. For the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023, the EFM JV accounted for </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in revenue, respectively, included in the Company's results. For the six months ended June 30, 2024 and 2023, the EFM JV accounted for </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">23.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">19.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in revenue, respectively, included in the Company's results.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Foreign Debt</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has a number of bank guarantee facilities and bilateral lines of credit in various foreign countries currently supported by cash, letters of credit or pledged assets and collateral under the Credit Facility. In March 2023, the Company amended the Credit Facility, allowing letters of credit and bank guarantee issuances of up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">80.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million from the bilateral lines of cred</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">it secured through pledged assets and collateral under the Credit Facility. As of June 30, 2024 and December 31, 2023, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">48.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">45.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in bank guarantees were outstanding, respectively, inclusive of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in outstanding bank guarantees as of June 30, 2024 and December 31, 2023, respectively, under a Euro-denominated bank guarantee agreement held by a subsidiary of the Company located in the Netherlands and secured by local assets, as well as </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in outstanding bank guarantees as of  June 30, 2024 and December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, under Yuan-denominated bank guarantee agreements held by a subsidiary of the Company located in China and secured by local assets.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">    </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>26
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975442237216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per Share<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 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"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">9.	Earnings per Share</span></p><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The computational components of basic and diluted earnings per share for the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023 are as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Numerator </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(for basic and diluted earnings per share)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,485</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,724</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,918</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,619</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock equivalents arising from stock options and restricted stock awards</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,385</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">525</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">36,303</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,144</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The computational components of basic and diluted earnings per share for the six months ended June 30, 2024 and 2023 are as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Numerator </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(for basic and diluted earnings per share)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,993</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,701</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,882</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,531</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock equivalents arising from stock options and restricted stock awards</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,357</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">641</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">36,239</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,172</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Options and restricted stock units included in the computation of diluted earnings per share are calculated using the treasury stock method. For the three months ended June 30, 2024 and 2023, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">zero</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, and for the six months ended June 30, 2024 and 2023, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, of outstanding options and restricted stock units were excluded from the computation of diluted earnings per share due to their having an anti-dilutive effect.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Once a restricted stock unit vests, it is included in the computation of weighted average shares outstanding for purposes of basic and diluted earnings per share.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Common Stock Repurchase</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On May 10, 2022, the Company's Board of Directors authorized a share repurchase program under which the Company may purchase up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">20.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of its outstanding shares of common stock through April 30, 2025. The authorization permits the Company to repurchase shares in the open market, through accelerated share repurchases, block trades, Rule 10b5-1 trading plans or through privately negotiated transactions in accordance with applicable laws, rules and regulations. During the three and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, the Company repurchased approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">86,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">230,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> shares under the program, respectively, for a cost of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">5.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. There were </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> shares repurchased under the program during the three or six months ended June 30, 2023.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975444538208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share-Based Compensation<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [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 );">Share-Based Compensation</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10.	Share-Based Compensation</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company accounts for share-based compensation in accordance with Accounting Standards Codification (&#8220;ASC&#8221;) Topic 718, &#8220;Compensation &#8211; Stock Compensation,&#8221; which requires the Company to recognize compensation expense for share-based awards, measured at the fair value of the awards at the grant date. The Company recognized </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of share-based compensation related expense during the three months ended June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of share-based compensation related expense during the six months ended June 30, 2024 and 2023, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company granted approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">57,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">50,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> restricted stock units during the three months ended June 30, 2024 and 2023, respectively, and approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">341,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">390,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> restricted stock units during the six months ended June 30, 2024 and 2023, respectively. In addition, the Company granted approximately </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">25,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">zero</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> stock options during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively. </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> stock options were granted during the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">There were approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">10,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">25,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> options exercised during the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023, respectively, for which the Company received </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, respectively, from employees and directors. The intrinsic value of options exercised was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for each of the three months ended June 30, 2024 and 2023. There were approximately </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">20,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">77,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> options exercised during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023, respectively, for which the Company received </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, respectively, from employees and directors. The intrinsic value of options exercised was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for each of the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>28
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975442177136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pension and Employee Benefit Plans<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [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_PensionAndOtherPostretirementBenefitsDisclosureTextBlock', window );">Pension and Employee Benefit Plans</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">11.	Pension and Employee Benefit Plans</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company sponsors a non-contributory defined benefit pension plan for certain union employees. The plan is funded in accordance with the funding requirements of the Employee Retirement Income Security Act of 1974.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company presents the components of net periodic benefit cost within &#8220;Other (expense) income, net&#8221; on the Condensed Consolidated Statements of Income.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Retirement plan expense is based on valuations performed by plan actuaries as of the beginning of each fiscal year. The components of the pension plan expense consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Interest cost</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">304</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">318</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">608</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">637</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Expected return on plan assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">304</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">285</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">608</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">571</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization of net actuarial loss</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">57</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">74</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">113</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">148</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net periodic benefit cost</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">57</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">107</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">113</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">214</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company made contributions to its defined benefit plan of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million during the three and six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> contributions were made to the plan during the three and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2023. For the remainder of 2024, the Company expects to make contributions of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to fund the pension plan. The unfunded liability of the plan of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million as of June 30, 2024 and December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, is included in &#8220;Other liabilities&#8221; on the Condensed Consolidated Balance Sheets.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 retirement benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480794/715-70-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-17<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (q)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//715/tableOfContent<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (o)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (p)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480126/715-20-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480266/715-60-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_PensionAndOtherPostretirementBenefitsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975440382208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">12.	Income Taxes</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company files income tax returns in various federal, state and local jurisdictions. Tax years from</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2018</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> forward remain open for examination by Federal authorities. Tax years from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2017</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> forward remain open for all significant s</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">tate and foreign authorities.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company accounts for uncertain tax positions pursuant to ASC Topic 740, &#8220;Income Taxes.&#8221; As of June 30, 2024 and December 31, 2023, the liability for uncertain tax positions totaled approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, which is included in &#8220;Other liabilities&#8221; on the Condensed Consolidated Balance Sheets. The Company recognizes accrued interest related to uncertain tax positions and penalties, if any, in income tax expense within the Condensed Consolidated Statements of Income.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain of the Company&#8217;s undistributed earnings of our foreign subsidiaries are not permanently reinvested. Since foreign earnings have already been subject to United States income tax in 2017 as a result of the 2017 Tax Cuts and Jobs Act, the Company intends to repatriate foreign-held cash as needed. The Company records deferred income tax attributable to foreign withholding taxes that would become payable should it decide to repatriate cash held in our foreign operations. As of June 30, 2024 and December 31, 2023, the Company recorded deferred income taxes of approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, on the undistributed earnings of its foreign subsidiaries.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Income tax expense was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the three months ended June 30, 2024 and 2023, respectively, and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for the six months ended June 30, 2024 and 2023, respectively. The effective income tax rate for the three months ended June 30, 2024 was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> compared with </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">19.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for the three months ended June 30, 2023, and the effective income tax rate for the six months ended June 30, 2024 was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> compared with </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for the six months ended June 30, 2023. The effective income tax rates for the three and six months ended June 30, 2024 and 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> differ </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">from the United States federal statutory rate. The Company's effective rate is affected by certain other permanent differences, including state income taxes, non-deductible incentive stock-based compensation and differences in tax rates among jurisdictions in which it</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">operates. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Additionally, the Company received a tax indemnification payment of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, related to a prior year acquisition, in the second quarter of 2024.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Organization for Economic Co-operation and Development/G20 Inclusive Framework on Base Erosion and Profit Shifting published the Pillar Two model rules designed to address the tax challenges arising from the digitalization of the global economy which introduces a </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">15</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% global minimum corporate tax for companies with revenues above &#8364;</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">750</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million calculated on a country-by-country basis. On February 1, 2023, the FASB indicated that it believes the minimum tax imposed under Pillar Two is an alternative minimum tax, and, accordingly, deferred tax assets and liabilities associated with the minimum tax would not be recognized or adjusted for the estimated future effects of the minimum tax but would be recognized in the period incurred. Aspects of Pillar Two legislation have been enacted in certain jurisdictions in which the Company operates effective for accounting periods commencing on or after January 1, 2024. However, based on the current revenue threshold, the Company is currently not subject to Pillar Two taxes.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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>30
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975444393968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Financial Instruments<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsAllOtherInvestmentsAbstract', window );"><strong>Investments, All Other Investments [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_FinancialInstrumentsDisclosureTextBlock', window );">Financial Instruments</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">13.	Financial Instruments</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company's financial instruments consist primarily of investments in cash and cash equivalents, receivables and certain other assets, notes payable, foreign debt and accounts payable, which approximate fair value at June 30, 2024 and December 31, 2023, due to their short-term nature or variable, market-driven interest rates.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The fair value of the debt issued under the Credit Facility and joint venture term loan was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">131.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">138.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million at </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023, respectively. The fair value was determined considering market conditions, the Company's credit worthiness and the current terms of our debt, which is considered Level 2 on the fair value hierarchy.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At June 30, 2024 and December 31, 2023, the Company had cash and cash equivalents of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">36.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">54.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, of which </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">28.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">38.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively, was held outside of the United States, principally in the Netherlands, India, United Kingdom, and China.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 financial instruments. This disclosure includes, but is not limited to, fair value measurements of short and long term marketable securities, international currencies forward contracts, and auction rate securities. Financial instruments may include hedging and non-hedging currency exchange instruments, derivatives, securitizations and securities available for sale at fair value. Also included are investment results, realized and unrealized gains and losses as well as impairments and risk management disclosures.</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_FinancialInstrumentsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_InvestmentsAllOtherInvestmentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsAllOtherInvestmentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975535734416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Legal Matters<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [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 - Legal Matters</a></td>
<td class="text"><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">14.	Commitments and Contingencies</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Asbestos cases</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company's subsidiary, Met-Pro Technologies LLC (&#8220;Met-Pro&#8221;), beginning in 2002, has been named in asbestos-related lawsuits filed against a large number of industrial companies including, in particular, those in the pump and fluid handling industries. In management&#8217;s opinion, the complaints typically have been vague, general and speculative, alleging that Met-Pro, along with the numerous other defendants, sold unidentified asbestos-containing products and engaged in other related actions which caused injuries (including death) and loss to the plaintiffs. Counsel has advised that more recent cases typically allege more serious claims of mesothelioma. The Company&#8217;s insurers have hired attorneys who, together with the Company, are vigorously defending these cases. Many cases have been dismissed after the plaintiff fails to produce evidence of exposure to Met-Pro&#8217;s products. In those cases, where evidence has been produced, the Company&#8217;s experience has been that the exposure levels are low and the Company&#8217;s position has been that its products were not a cause of death, injury or loss. The Company has been dismissed from or settled a large number of these cases. Cumulative settlement payments from 2002 through June 30, 2024 for cases involving asbestos-related claims were </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million which together with all legal fees other than corporate counsel expenses have substantially been paid by the Company&#8217;s insurers. The average cost per settled claim, excluding legal fees, was approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">33,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. As of June 30, 2024 and December 31, 2023, the amount recorded within "Accrued expenses" on the Condensed Consolidated Balance Sheets was </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">zero</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, related to asbestos litigation.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Based upon the most recent information available to the Company regarding such claims, there were a total of 333 cases pending against the Company as of June 30, 2024 with Illinois, New York, Pennsylvania and West Virginia having the largest number of cases, as compared with </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">313</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> cases that were pending as of December 31, 2023. During the six months ended June 30, 2024, 94 new cases were filed against the Company, and the Company was dismissed from 50 cases and settled 24 cases. Most of the pending cases have not advanced beyond the early stages of discovery, although a number of cases are on schedules leading to or scheduled for trial. The Company believes that its insurance coverage is adequate for the cases currently pending against the Company and for the foreseeable future, assuming a continuation of the current volume, nature of cases and settlement amounts. However, the Company has no control over the number and nature of cases that are filed against it, nor as to the financial health of its insurers or their position as to coverage. The Company also presently believes that none of the pending cases will have a material adverse impact upon the Company&#8217;s results of operations, liquidity or financial condition.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Other</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company is also a party to routine contract and employment-related litigation matters, warranty claims and routine audits of state and local tax returns arising in the ordinary course of its business.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The final outcome and impact of open matters, and related claims and investigations that may be brought in the future, are subject to many variables, and cannot be predicted. The Company records accruals for estimated losses relating to claims and lawsuits when available information indicates that a loss is probable and the amount of the loss, or range of loss, can be reasonably estimated. The Company expenses legal costs as they are incurred.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company is</span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> not aware of any pending claims or assessments, other than as described above, which may have a material adverse impact on its liquidity, financial position, results of operations, or cash flows.</span></span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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>32
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975528801232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsAbstract', window );"><strong>Business Combinations [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_BusinessCombinationDisclosureTextBlock', window );">Acquisitions and Joint Ventures</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">15.      Acquisitions</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Kemco Systems Co., LLC</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On August 23, 2023, the Company acquired </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">100</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the equity interests of Kemco for $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">24.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, which was financed with a draw on the Company&#8217;s revolving credit facility. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the three months ended March 31, 2024, the Company received $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million from the former owners of Kemco as a working capital adjustment, reducing the purchase price to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">23.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As additional consideration, the former owners of Kemco are entitled to earnout payments up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million based upon specified financial results through August 31, 2026, of which $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million was paid during the second quarter of 2024. Based on projections at the acquisition date, the Company estimated the fair value of the earnout to be $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, which was subsequently adjusted to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in the first quarter of 2024. This fair value measurement is based on inputs not observable in the market, which is considered Level 3 on the fair value hierarchy. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024, the earnout liability recorded in &#8220;Accrued expenses&#8221; on the Condensed Consolidated Balance Sheets is </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. Kemco designs and manufactures energy and water conservation systems and equipment for applications regarding wastewater reuse and recycle, heat recovery, water heating, and vapor energy. This acquisition advances the Company's position within the North American water and wastewater treatment market within the Engineered Systems segment. </span><span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span></span></p><div style="font-size:10pt;font-family:Times New Roman;">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"></td>
        <td style="width:1.94%;"></td>
        <td style="width:1%;"></td>
        <td style="width:15.823%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,328</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,902</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">341</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Right-of-use assets from operating leases</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,602</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,610</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,115</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">33,586</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,853</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">404</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,329</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company acquired technology, customer lists and tradename intangible assets valued at $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. These assets were determined to have useful lives of </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> years, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Transcend Solutions</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On March 31, 2023, the Company acquired </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">100</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the equity interests of Transcend Solutions, LLC ("Transcend") for</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">22.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, including $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">20.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, which was financed with a draw on the Company&#8217;s revolving credit facility, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of deferred cash consideration, consisting of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of holdback paid within one year and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of notes payable due in equal installments over two years, of which $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million was paid during the first quarter of 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Transcend is a process filtration solution design and manufacturing company with applications in hydrocarbon and chemical processing. This acquisition improves the Company's short-cycle and long-cycle mix and expands the Company's reach into midstream oil and gas, liquified natural gas, hydrocarbon processing, and chemical processing applications within the Engineered Systems segment. </span><span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span></span></p><div style="font-size:10pt;font-family:Times New Roman;">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"></td>
        <td style="width:1.94%;"></td>
        <td style="width:1%;"></td>
        <td style="width:15.823%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including cash of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">52</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;and accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,493</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,614</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,153</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,930</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,839</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">231</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23,767</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,203</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">168</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,396</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company acquired technology, customer lists and tradename intangible assets valued at $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. These assets were determined to have useful lives of </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10 </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">and </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10 </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">years, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Malvar Engineering Limited</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On January 10, 2023, the Company acquired </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">100</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the equity interests of Malvar Engineering Limited, including its subsidiaries Arkanum Management Limited and Wakefield Acoustics Limited (collectively, "Wakefield"), for</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in cash, which was financed with a draw on the Company&#8217;s revolving credit facility, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million of deferred cash consideration</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. As additional consideration, the former owners are entitled to earn-out payments based upon specified financial results through July 31, 2023. Based on projections at the acquisition date, the Company estimated the fair value of the earn-out to be $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. A payment of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, representing the fully earned amount, was made in the fourth quarter of 2023. Wakefield is a </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">producer of industrial engineered noise control solutions, including custom acoustical gen-set packages, ambient air baffles, acoustical louvres, and skid enclosures, primarily serving server farms for data centers, standby and emergency power generation, oil and gas, petrochemical, commercial construction, infrastructure, and general manufacturing industries. This acquisition advances the Company's position within the industrial silencing and noise attenuation market by adding a range of solutions and access to new geographic markets within the Engineered Systems segment. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span></span></p><div style="font-size:10pt;font-family:Times New Roman;">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"></td>
        <td style="width:1.94%;"></td>
        <td style="width:1%;"></td>
        <td style="width:15.823%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,467</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,240</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">635</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,778</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,296</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,949</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,860</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred income tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">961</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,128</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company acquired customer lists and tradename intangible assets valued at $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million, respectively. These assets were determined to have useful lives of </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10 years</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has finalized the valuation of assets acquired and liabilities assumed related to the acquisition of Wakefield and Transcend. The purchase accounting related to the Kemco acquisition is subject to final adjustment, primarily for the valuation of intangible assets pending final valuation results for such assets and tax balances for the further assessment of the acquiree&#8217;s tax positions. These preliminary estimates and assumptions could change significantly during the purchase price measurement period as the Company finalizes the valuation of assets acquired and liabilities assumed. These changes could result in material variances in the Company's future financial results, including variances in the estimated purchase price, fair values recorded and expenses associated with these items.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill recognized represents value the Company expects to be created by combining the various operations of the acquired businesses with the Company&#8217;s operations, including the expansion into markets within existing business segments, access to new customers and potential cost savings and synergies. Goodwill related to this acquisition is not deductible for tax purposes.<br/><br/>Acquisition and integration expenses on the Condensed Consolidated Statements of Income are related to acquisition activities, which include retention, legal, accounting, banking, and other expenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following unaudited pro forma financial information represents the Company&#8217;s results of operations as if these acquisitions had occurred at the beginning of the fiscal year prior to the acquisition:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:51.31%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1%;"></td>
        <td style="width:11.582%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1%;"></td>
        <td style="width:6.281000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1%;"></td>
        <td style="width:11.582%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1%;"></td>
        <td style="width:6.281000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands, except per share data)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">135,260</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">263,854</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">257,455</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,485</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,292</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,993</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,019</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Earnings per share:</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.13</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.12</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.17</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.20</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.12</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.12</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.17</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.20</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The pro forma results have been prepared for informational purposes only and include adjustments to amortize acquired intangible assets with finite life, reflect additional interest expense on debt used to fund the acquisition, and to record the income tax consequences of the pro forma adjustments. These pro forma results do not purport to be indicative of the results of operations that would have occurred had the purchase been made as of the beginning of the periods presented or of the results of operations that may occur in the future.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-50-5<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//805/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_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975441510112">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Segment Information<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Business Segment Information</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">16.	Business Segment Information</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s operations are organized and reviewed by management along with its solutions or end markets that the segment serves and presented in two reportable segments. The results of the segments are reviewed through the &#8220;Income from operations&#8221; line on the Condensed Consolidated Statements of Income</span><span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#8217;s reportable segments are organized as groups of similar products and services, as described as follows:</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Engineered Systems segment:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> The Engineered Systems segment serves the power generation, hydrocarbon processing, water/wastewater treatment, oily water separation and treatment, marine and naval vessels, and midstream oil and gas sectors. The Company seeks to address the global demand for environmental and equipment protection solutions with its highly engineered platforms including emissions management, fluid bed cyclones, thermal acoustics, separation and filtration, and dampers and expansion joints.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Industrial Process Solutions segment:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> The Industrial Process Solutions segment serves the broad industrial sector with solutions for air pollution and contamination control, fluid handling, and process filtration in applications such as aluminum beverage can production, automobile production, food and beverage processing, semiconductor fabrication, electronics production, steel and aluminum mill processing, wood manufacturing, desalination, and aquaculture markets. The Company assists customers in maintaining clean and safe operations for employees, reducing energy consumption, minimizing waste for customers, and meeting regulatory standards for toxic emissions, fumes, volatile organic compounds and odor elimination through its platforms including duct fabrication and installation, industrial air, and fluid handling.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The financial segment information is as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales (less intra-, inter-segment sales)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">97,392</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">87,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">186,741</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">161,977</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">40,130</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,659</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">77,113</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">79,767</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129,181</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">263,854</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">241,744</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Income from operations</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">19,330</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,089</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,607</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23,894</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,669</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,586</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,769</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,131</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;">(1)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,742</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,072</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">31,433</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">19,961</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total income from operations</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,257</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,603</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,943</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,064</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><div class="item-list-element-wrapper" style="display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:6pt;min-width:6.667%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:6.667%;display:inline-flex;justify-content:flex-start;">(1)</span><div style="width:100%;display:inline;"><span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Includes corporate compensation, professional services, information technology, and other general and administrative corporate expenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"> </span></span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"> </span></div></div><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;">&#160;</p><div style="font-size:10pt;font-family:Times New Roman;">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Property and equipment additions</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">890</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">444</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,027</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">688</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">429</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">312</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,035</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,711</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,804</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,406</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,171</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,520</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total property and equipment additions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,123</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,162</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,233</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,919</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Depreciation and amortization</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,814</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,274</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,599</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,486</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,131</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">949</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,250</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,107</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">516</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">542</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,124</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,057</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total depreciation and amortization</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,461</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,765</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,973</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,650</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Identifiable assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">427,732</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">432,098</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">144,132</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">147,740</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;">(2)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,269</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">20,453</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total identifiable assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">598,133</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">600,291</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><div class="item-list-element-wrapper" style="display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:6pt;min-width:6.667%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:6.667%;display:inline-flex;justify-content:flex-start;">(2)</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Corporate and Other assets consist primarily of cash and income tax related assets.</span></div></div></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;">&#160;</p><div style="font-size:10pt;font-family:Times New Roman;">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">142,058</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">142,229</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">69,086</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">69,097</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,144</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,326</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"><br/></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Intra-segment and Inter-segment Revenues</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has multiple divisions that sell to each other within segments (intra-segment sales) and between segments (inter-segment sales), as follows:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.3%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">102,141</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,553</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">196</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">97,392</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44,673</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,440</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">103</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">40,130</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">146,814</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,993</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">196</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">103</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.357%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.443%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.523%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.523%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.523%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.523%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">95,880</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,995</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">363</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">87,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44,641</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,806</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">176</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,659</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">140,521</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,801</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">363</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">176</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129,181</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.297%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.583%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.503%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.503%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.503%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.503%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">194,659</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,635</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">283</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">186,741</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">84,252</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,975</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">164</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">77,113</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">278,911</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,610</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">283</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">164</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">263,854</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.3%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">171,970</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,533</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">460</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">161,977</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">83,682</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,641</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">274</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">79,767</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">255,652</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">13,174</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">460</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">274</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">241,744</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-15<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 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<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 (d)<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/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/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> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//280/tableOfContent<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 26<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-26<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 34<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-34<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-21<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-21<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<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_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975440413584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 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_SubsequentEventsAbstract', window );"><strong>Subsequent Events [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">17.	Subsequent Events</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On July 29, 2024, the Company completed its acquisition of EnviroCare International (&#8220;EnviroCare"), based in American Canyon, California. EnviroCare is a leading, international designer and provider of industrial exhaust air contamination treatment and control systems, solutions and services across a wide range of industrial and municipal applications. This acquisition advances the Company's leadership position within the industrial processing solutions segment by adding a range of solutions and access to new geographic markets and industrial segments. The purchase price was approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">17</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million and financed using a combination of cash on the balance sheet and borrowings under the Company&#8217;s existing Credit Facility. The impact of this acquisition is not included in the Company's results for the three or six months ended June 30, 2024. The initial accounting for the acquisition was not complete at the time the financial statements were issued due to the timing of the acquisition and the filing of this Quarterly Report on Form 10-Q. As a result, complete disclosures as required under ASC 805, Business Combinations cannot be made at this time.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//855/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975444498320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>New Financial Accounting Pronouncements (Policies)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract', window );"><strong>Accounting Changes and Error Corrections [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_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Accounting Standards Adopted in Fiscal 2024</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounting Standards Adopted in Fiscal </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2024</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">None.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock', window );">Accounting Standards to be Adopted</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounting Standards to be Adopted</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In December 2023, the Financial Accounting Standards Board (the "FASB") issued Accounting Standards Update ("ASU") 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which addresses income tax disclosure requirements, primarily around the disclosure of the rate reconciliation and income taxes paid. The ASU is effective for fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#8217;s consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In November 2023, the FASB issued ASU 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which addresses segment disclosure requirements, primarily the disclosure of significant segment expenses. The ASU is effective for fiscal years beginning after December 15, 2023, and interim periods beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#8217;s consolidated financial statements.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>New accounting standards not yet adopted policy.</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;">ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</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_AccountingChangesAndErrorCorrectionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingChangesAndErrorCorrectionsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975440414576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accounts Receivable (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesAbstract', window );"><strong>Receivables [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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock', window );">Summary of Accounts Receivable</a></td>
<td class="text"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">133,556</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">119,193</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Provision for credit losses</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,582</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,460</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accounts receivable, net</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">126,974</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">112,733</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3,4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975536962736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Assets and Liabilities (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Table Text Block [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_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Summary of Contract Assets and Liabilities</a></td>
<td class="text"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Contract assets and liabilities as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:59.792%;"></td>
        <td style="width:1.68%;"></td>
        <td style="width:1%;"></td>
        <td style="width:16.423%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.68%;"></td>
        <td style="width:1%;"></td>
        <td style="width:16.423%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Costs and estimated earnings in excess of billings on uncompleted contracts</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">55,378</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">66,574</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Billings in excess of costs and estimated earnings on uncompleted contracts</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">59,851</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">56,899</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-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_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.2</span><table class="report" border="0" cellspacing="2" id="idm139975438650048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Summary of Inventories</a></td>
<td class="text"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.553%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.683%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.683%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Raw materials</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">27,869</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">25,819</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Work in process</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,732</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,710</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Finished goods</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,905</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,368</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Obsolescence allowance</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,031</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,808</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total inventories</span></p></td>
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">38,475</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,089</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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>39
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975440043968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [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_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock', window );">Goodwill / Tradename</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and the year ended December 31, 2023 was as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.009%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1%;"></td>
        <td style="width:12.703%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.382%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.421999999999999%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.421999999999999%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Year ended December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill / Tradename</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Tradename</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Tradename</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,326</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,570</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">183,197</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,508</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisitions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">110</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">27,152</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency translation</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">292</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">48</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">977</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">62</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,144</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,326</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,570</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Intangible Assets - Finite Life</a></td>
<td class="text"><p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Finite life intangible assets as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:44.009%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1%;"></td>
        <td style="width:12.002%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1%;"></td>
        <td style="width:11.062%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.04%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.421999999999999%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.04%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.421999999999999%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Cost</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accum. Amort.</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Cost</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Accum. Amort.</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Technology</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,508</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,388</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,517</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,061</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Customer lists</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">103,471</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">66,721</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">103,471</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">63,420</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Tradenames</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,094</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,688</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,094</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,001</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency adjustments</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,397</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">207</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,083</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">56</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total intangible assets &#8211; finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">132,676</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">86,590</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">132,999</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">82,538</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock', window );">Summary of Finite Lived Intangible Assets Activities</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Finite life intangible asset activity for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023 was as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets &#8211; finite life, net at beginning of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">50,461</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,251</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization expense</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,315</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,430</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Acquisitions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,708</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Foreign currency adjustments</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">60</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">370</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets &#8211; finite life, net at end of period</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">46,086</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">42,899</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life.</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_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-1<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 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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of goodwill and intangible assets, which may be broken down by segment or major class.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-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_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<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.2</span><table class="report" border="0" cellspacing="2" id="idm139975441638736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Summary of Accrued Expenses</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accrued expenses as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Compensation and related benefits</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,854</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,278</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued warranty</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,478</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,105</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Contract liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,197</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,875</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short-term operating lease liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,950</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,278</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,257</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,765</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accrued expenses</span></p></td>
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44,736</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44,301</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975441636368">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Senior Debt (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Debt Disclosure [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_ScheduleOfDebtTableTextBlock', window );">Summary of Debt</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Debt as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and December 31, 2023 consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:68.754%;"></td>
        <td style="width:1.58%;"></td>
        <td style="width:1%;"></td>
        <td style="width:11.902000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.58%;"></td>
        <td style="width:1%;"></td>
        <td style="width:12.182%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Outstanding borrowings under Credit Facility (defined below)<br/>&#160;&#160;&#160;&#160;&#160;Term loan payable in </span><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">quarterly</span></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;principal installments of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">550</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;through September<br/>&#160;&#160;&#160;&#160;&#160;2023, $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,232</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;through September 2025 and $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,977</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;thereafter with balance due upon<br/>&#160;&#160;&#160;&#160;&#160;maturity in December 2026</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Term loan</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">107,959</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">112,424</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Revolving credit facility</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,800</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,300</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total outstanding borrowings under the Credit Facility</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">123,759</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129,724</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Outstanding borrowings under the joint venture term debt</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,123</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,855</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Unamortized debt discount</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,056</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,296</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total outstanding borrowings</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">130,826</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,283</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;&#160;&#160;Less: current portion</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,580</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,488</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total debt, less current portion</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">120,246</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">126,795</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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_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_ScheduleOfDebtTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDebtTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975444150640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 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 );">Number of Shares Outstanding for Calculation of Earnings Per Share</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The computational components of basic and diluted earnings per share for the three months ended </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024 and 2023 are as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Numerator </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(for basic and diluted earnings per share)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,485</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,724</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,918</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,619</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock equivalents arising from stock options and restricted stock awards</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,385</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">525</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">36,303</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,144</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The computational components of basic and diluted earnings per share for the six months ended June 30, 2024 and 2023 are as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Numerator </span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(for basic and diluted earnings per share)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,993</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,701</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Denominator</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,882</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,531</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ccecff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common stock equivalents arising from stock options and restricted stock awards</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,357</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">641</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted weighted-average shares outstanding</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">36,239</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,172</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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>43
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975441506944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pension and Employee Benefit Plans (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [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_ScheduleOfNetBenefitCostsTableTextBlock', window );">Components of Pension and Employee Benefit Expenses</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Retirement plan expense is based on valuations performed by plan actuaries as of the beginning of each fiscal year. The components of the pension plan expense consisted of the following:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Interest cost</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">304</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">318</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">608</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">637</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Expected return on plan assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">304</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">285</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">608</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">571</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amortization of net actuarial loss</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">57</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">74</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">113</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">148</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net periodic benefit cost</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">57</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">107</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">113</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">214</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfNetBenefitCostsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net benefit costs for pension plans and/or other employee benefit plans including service cost, interest cost, expected return on plan assets, gain (loss), prior service cost or credit, transition asset or obligation, and gain (loss) recognized due to settlements or curtailments.</p></div>
<a href="javascript: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 715<br> -SubTopic 20<br> -Subparagraph (h)<br> -Name Accounting Standards Codification<br> -Paragraph 1<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-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_ScheduleOfNetBenefitCostsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975443022736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ceco_GeneralRubberLlcMember', window );">General Rubber LLC [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_BusinessAcquisitionProFormaInformationTextBlock', window );">Schedule of Unaudited Pro Forma Financial Information</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following unaudited pro forma financial information represents the Company&#8217;s results of operations as if these acquisitions had occurred at the beginning of the fiscal year prior to the acquisition:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:51.31%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1%;"></td>
        <td style="width:11.582%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1%;"></td>
        <td style="width:6.281000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1%;"></td>
        <td style="width:11.582%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.24%;"></td>
        <td style="width:1%;"></td>
        <td style="width:6.281000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands, except per share data)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">135,260</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">263,854</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">257,455</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net income attributable to CECO Environmental Corp.</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,485</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,292</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,993</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,019</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Earnings per share:</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.13</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.12</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.17</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.20</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Diluted</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.12</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.12</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.17</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.20</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember', window );">Kemco Systems Co Llc [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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed</a></td>
<td class="text"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"></td>
        <td style="width:1.94%;"></td>
        <td style="width:1%;"></td>
        <td style="width:15.823%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,328</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,902</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">341</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Right-of-use assets from operating leases</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,602</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,610</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,115</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">33,586</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,853</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">404</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,329</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember', window );">Malvar Engineering Limited [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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed</a></td>
<td class="text"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"></td>
        <td style="width:1.94%;"></td>
        <td style="width:1%;"></td>
        <td style="width:15.823%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,467</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,240</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">635</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,778</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,296</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,949</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,860</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred income tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">961</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,128</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember', window );">Transcend Solution [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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed</a></td>
<td class="text"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.</span>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:80.236%;"></td>
        <td style="width:1.94%;"></td>
        <td style="width:1%;"></td>
        <td style="width:15.823%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current assets (including cash of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">52</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#160;and accounts receivable of $</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,493</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,614</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,153</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible - finite life</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,930</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,839</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">231</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23,767</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current liabilities assumed</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,203</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred tax liability</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">168</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net assets acquired</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,396</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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_BusinessAcquisitionProFormaInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.</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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-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_BusinessAcquisitionProFormaInformationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts.</p></div>
<a href="javascript: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 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-10-50-3<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_BusinessAcquisitionAxis=ceco_GeneralRubberLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_GeneralRubberLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>45
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975439896720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Segment Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [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_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Net Sales and Income from Operation by Business Segment</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The financial segment information is as follows:</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales (less intra-, inter-segment sales)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">97,392</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">87,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">186,741</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">161,977</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">40,130</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,659</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">77,113</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">79,767</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129,181</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">263,854</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">241,744</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Income from operations</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">19,330</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,089</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">35,607</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23,894</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,669</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,586</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,769</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,131</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;">(1)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,742</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,072</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">31,433</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">19,961</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total income from operations</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,257</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,603</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,943</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,064</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Includes corporate compensation, professional services, information technology, and other general and administrative corporate expenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"> </span><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock', window );">Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets</a></td>
<td class="text">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Property and equipment additions</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">890</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">444</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,027</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">688</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">429</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">312</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,035</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,711</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,804</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,406</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,171</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,520</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total property and equipment additions</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,123</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,162</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,233</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,919</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:46.4%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.12%;"></td>
        <td style="width:1%;"></td>
        <td style="width:10.280000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Depreciation and amortization</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,814</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,274</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,599</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,486</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,131</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">949</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,250</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,107</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">516</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">542</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,124</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,057</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total depreciation and amortization</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,461</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,765</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,973</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,650</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Identifiable assets</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">427,732</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">432,098</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">144,132</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">147,740</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Corporate and Other</span><span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;">(2)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,269</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">20,453</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total identifiable assets</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">598,133</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">600,291</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><div class="item-list-element-wrapper" style="display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:6pt;min-width:6.667%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:6.667%;display:inline-flex;justify-content:flex-start;">(2)</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Corporate and Other assets consist primarily of cash and income tax related assets.</span></div></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_ScheduleOfGoodwillTextBlock', window );">Goodwill</a></td>
<td class="text">
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:63.367%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.54%;"></td>
        <td style="width:1%;"></td>
        <td style="width:14.777000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Goodwill</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">142,058</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">142,229</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">69,086</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">69,097</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total goodwill</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,144</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">211,326</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"><br/></span><span></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_ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock', window );">Intra-Segment and Inter-Segment Revenues</a></td>
<td class="text"><p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company has multiple divisions that sell to each other within segments (intra-segment sales) and between segments (inter-segment sales), as follows:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.3%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">102,141</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,553</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">196</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">97,392</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44,673</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,440</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">103</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">40,130</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">146,814</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,993</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">196</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">103</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">137,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.357%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.443%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.523%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.523%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.523%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.523%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">95,880</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,995</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">363</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">87,522</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44,641</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,806</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">176</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,659</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">140,521</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,801</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">363</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">176</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">129,181</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.297%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.583%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.503%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.503%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.503%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.503%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2024</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">194,659</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,635</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">283</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">186,741</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">84,252</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,975</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">164</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">77,113</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">278,911</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,610</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">283</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">164</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">263,854</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
      </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
      <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;">
       <tr style="visibility:collapse;">
        <td style="width:42.3%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
        <td style="width:1.02%;"></td>
        <td style="width:1%;"></td>
        <td style="width:8.520000000000001%;"></td>
        <td style="width:1%;"></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30, 2023</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Less Inter-Segment Sales</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Total<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Intra-<br/>Segment<br/>Sales</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Industrial Process Solutions</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Engineered Systems</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Sales</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">to<br/>Outside<br/>Customers</span></p></td>
        <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;">
        <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Net sales</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Engineered Systems segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">171,970</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,533</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">460</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">161,977</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
        <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Industrial Process Solutions segment</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">83,682</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,641</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">&#8212;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">274</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">79,767</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
       </tr>
       <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
        <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total net sales</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">255,652</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">13,174</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">460</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">274</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td>
        <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">241,744</span></p></td>
        <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;">&#160;</span></p></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_ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intra segment and inter segment elimination by 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;">ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</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_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reconciliation of other items from reportable segments to their consolidated amount. Excludes reconciliation of revenue, profit (loss), and assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-31<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfGoodwillTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfGoodwillTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-25<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975436452448">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accounts Receivable - Summary of Accounts Receivable (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Jan. 01, 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_AccountsNotesAndLoansReceivableLineItems', window );"><strong>Accounts, Notes, Loans and Financing Receivable [Line Items]</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_AccountsReceivableGrossCurrent', window );">Accounts receivable</a></td>
<td class="nump">$ 133,556<span></span>
</td>
<td class="nump">$ 119,193<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Provision for credit losses</a></td>
<td class="num">(6,582)<span></span>
</td>
<td class="num">(6,460)<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_AccountsReceivableNetCurrent', window );">Total accounts receivable, net</a></td>
<td class="nump">$ 126,974<span></span>
</td>
<td class="nump">$ 112,733<span></span>
</td>
<td class="nump">$ 83,100<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_AccountsNotesAndLoansReceivableLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_AccountsNotesAndLoansReceivableLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 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 (c)<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 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 4: 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_AccountsReceivableGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975444166784">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accounts Receivable - Additional Information (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Jan. 01, 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_ReceivablesAbstract', window );"><strong>Receivables [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>
</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_ceco_ContractReceivableRetainage1', window );">Amount billed but not received under retainage provisions in contracts</a></td>
<td class="nump">$ 3,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, net allowances</a></td>
<td class="nump">126,974<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">126,974<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 112,733<span></span>
</td>
<td class="nump">$ 83,100<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForOtherCreditLosses', window );">Provision for credit losses</a></td>
<td class="nump">$ 700<span></span>
</td>
<td class="num">$ (100)<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_ContractReceivableRetainage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract receivable retainage1.</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;">ceco_ContractReceivableRetainage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_ProvisionForOtherCreditLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense related to credit loss from transactions other than loan and lease transactions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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_ProvisionForOtherCreditLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975623099536">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Contract Assets and Liabilities - Summary of Contract Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Jan. 01, 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_ContractWithCustomerAssetNetCurrentAbstract', window );"><strong>Contract with Customer, Asset, after Allowance for Credit Loss, Current [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Costs and estimated earnings in excess of billings on uncompleted contracts</a></td>
<td class="nump">$ 55,378<span></span>
</td>
<td class="nump">$ 66,574<span></span>
</td>
<td class="nump">$ 71,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_ContractWithCustomerLiabilityCurrent', window );">Billings in excess of costs and estimated earnings on uncompleted contracts</a></td>
<td class="nump">$ 59,851<span></span>
</td>
<td class="nump">$ 56,899<span></span>
</td>
<td class="nump">$ 32,700<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_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNetCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975444166784">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Assets and Liabilities (Additional Information) (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Jan. 01, 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_FairValueOffBalanceSheetRisksDisclosureInformationLineItems', window );"><strong>Contract Assets and Liabilities [Line Items]</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_ContractWithCustomerAssetNetCurrent', window );">Costs and estimated earnings in excess of billings on uncompleted contracts</a></td>
<td class="nump">$ 55,378<span></span>
</td>
<td class="nump">$ 66,574<span></span>
</td>
<td class="nump">$ 71,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_ContractWithCustomerLiabilityCurrent', window );">Billings in excess of costs and estimated earnings on uncompleted contracts</a></td>
<td class="nump">$ 59,851<span></span>
</td>
<td class="nump">56,899<span></span>
</td>
<td class="nump">32,700<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_ContractLiabilitiesRecognizedAsRevenue', window );">Contract Liabilities Recognized As Revenue</a></td>
<td class="nump">70.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems', window );"><strong>Contract Assets and Liabilities [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrentAndNoncurrent', window );">Accrued expenses</a></td>
<td class="nump">$ 9,200<span></span>
</td>
<td class="nump">$ 7,900<span></span>
</td>
<td class="nump">$ 4,500<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_ContractLiabilitiesRecognizedAsRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract Liabilities Recognized As 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;">ceco_ContractLiabilitiesRecognizedAsRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</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_AccruedLiabilitiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities.</p></div>
<a href="javascript: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 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<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_AccruedLiabilitiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_FairValueOffBalanceSheetRisksDisclosureInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_AccruedLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FinancialInstrumentAxis=us-gaap_AccruedLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>50
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975440191840">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Inventories - Summary of Inventories (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNetAbstract', window );"><strong>Inventory, Net [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_InventoryRawMaterials', window );">Raw materials</a></td>
<td class="nump">$ 27,869<span></span>
</td>
<td class="nump">$ 25,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_InventoryWorkInProcess', window );">Work in process</a></td>
<td class="nump">11,732<span></span>
</td>
<td class="nump">9,710<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoods', window );">Finished goods</a></td>
<td class="nump">2,905<span></span>
</td>
<td class="nump">2,368<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryValuationReserves', window );">Obsolescence allowance</a></td>
<td class="num">(4,031)<span></span>
</td>
<td class="num">(3,808)<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_InventoryNet', window );">Total inventories</a></td>
<td class="nump">$ 38,475<span></span>
</td>
<td class="nump">$ 34,089<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_InventoryRawMaterials">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<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_InventoryRawMaterials</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryValuationReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation reserve for inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB TOPIC 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480581/330-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryValuationReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWorkInProcess">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcess</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975439265040">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories - Additional Information (Detail) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [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_InventoryWriteDown', window );">Amounts credited to the allowance for obsolete inventory</a></td>
<td class="nump">$ 0.2<span></span>
</td>
<td class="nump">$ 0.4<span></span>
</td>
<td class="nump">$ 0.7<span></span>
</td>
<td class="nump">$ 0.6<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWriteDown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels.</p></div>
<a href="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 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483080/330-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_InventoryWriteDown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>52
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975441357024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Intangible Assets - Goodwill / Tradename (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [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_Goodwill', window );">Goodwill, beginning balance</a></td>
<td class="nump">$ 211,326<span></span>
</td>
<td class="nump">$ 183,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_GoodwillPurchaseAccountingAdjustments', window );">Goodwill, Acquisitions</a></td>
<td class="nump">110<span></span>
</td>
<td class="nump">27,152<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillForeignCurrencyTranslationGainLoss', window );">Goodwill, foreign currency translation</a></td>
<td class="num">(292)<span></span>
</td>
<td class="nump">977<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, ending balance</a></td>
<td class="nump">211,144<span></span>
</td>
<td class="nump">211,326<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill', window );">Tradename, beginning balance</a></td>
<td class="nump">9,570<span></span>
</td>
<td class="nump">9,508<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments', window );">Tradename, Acquisitions</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss', window );">Tradename, foreign currency translation</a></td>
<td class="num">(48)<span></span>
</td>
<td class="nump">62<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill', window );">Tradename, ending balance</a></td>
<td class="nump">$ 9,522<span></span>
</td>
<td class="nump">$ 9,570<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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 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(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of foreign currency translation gain (loss) which increases (decreases) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-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_GoodwillForeignCurrencyTranslationGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GoodwillPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 adjustments after acquisition date under purchase accounting of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 16<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479405/805-10-25-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_GoodwillPurchaseAccountingAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IndefiniteLivedIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<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_IndefiniteLivedIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of foreign currency translation gain (loss) which increases (decreases) an asset, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit to fair value.</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_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit, from purchase accounting adjustments.</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_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975439066000">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Goodwill and Intangible Assets - Intangible Assets - Finite Life (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">$ 132,676<span></span>
</td>
<td class="nump">$ 132,999<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">86,590<span></span>
</td>
<td class="nump">82,538<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember', window );">Technology [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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">16,508<span></span>
</td>
<td class="nump">16,517<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">14,388<span></span>
</td>
<td class="nump">14,061<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_CustomerListsMember', window );">Customer Lists [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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">103,471<span></span>
</td>
<td class="nump">103,471<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">66,721<span></span>
</td>
<td class="nump">63,420<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_TradeNamesMember', window );">Tradename [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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="nump">14,094<span></span>
</td>
<td class="nump">14,094<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">5,688<span></span>
</td>
<td class="nump">5,001<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=ceco_ForeignCurrencyTranslationAdjustmentMember', window );">Foreign Currency Adjustments [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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Cost</a></td>
<td class="num">(1,397)<span></span>
</td>
<td class="num">(1,083)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">$ (207)<span></span>
</td>
<td class="nump">$ 56<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 928<br> -SubTopic 340<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483147/928-340-50-1<br><br>Reference 2: 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)(1)<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_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CustomerListsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=ceco_ForeignCurrencyTranslationAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ceco_ForeignCurrencyTranslationAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975442606384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Intangible Assets - Finite Lived Intangible Assets Amortization Expense (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [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_FiniteLivedIntangibleAssetsNet', window );">Intangible assets &#8211; finite life, net at beginning of period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 50,461<span></span>
</td>
<td class="nump">$ 35,251<span></span>
</td>
</tr>
<tr class="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 expense</a></td>
<td class="num">$ (2,200)<span></span>
</td>
<td class="num">$ (1,700)<span></span>
</td>
<td class="num">(4,315)<span></span>
</td>
<td class="num">(3,430)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments', window );">Acquisition</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">10,708<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss', window );">Foreign currency adjustments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(60)<span></span>
</td>
<td class="nump">370<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets &#8211; finite life, net at end of period</a></td>
<td class="nump">$ 46,086<span></span>
</td>
<td class="nump">$ 42,899<span></span>
</td>
<td class="nump">$ 46,086<span></span>
</td>
<td class="nump">$ 42,899<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of foreign currency translation gain (loss) which increases (decreases) assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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://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)(1)<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_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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) to assets, excluding financial assets and goodwill, lacking physical substance with a finite life for purchase accounting adjustments.</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_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975439057344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill and Intangible Assets - Additional Information (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems', window );"><strong>Schedule Of Goodwill And Other Intangible Assets [Line Items]</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_AmortizationOfIntangibleAssets', window );">Amortization expense of finite life intangible assets</a></td>
<td class="nump">$ 2,200<span></span>
</td>
<td class="nump">$ 1,700<span></span>
</td>
<td class="nump">$ 4,315<span></span>
</td>
<td class="nump">$ 3,430<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">Amortization expense of finite life intangibles for 2024</a></td>
<td class="nump">4,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">Amortization expense of finite life intangibles for 2025</a></td>
<td class="nump">7,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">Amortization expense of finite life intangibles for 2026</a></td>
<td class="nump">6,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">Amortization expense of finite life intangibles for 2027</a></td>
<td class="nump">6,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">Amortization expense of finite life intangibles for 2028</a></td>
<td class="nump">$ 5,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,600<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_ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Schedule Of Goodwill And Other Intangible Assets [Line Items]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975442605264">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accrued Expenses - Summary of Accrued Expenses (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeRelatedLiabilitiesCurrent', window );">Compensation and related benefits</a></td>
<td class="nump">$ 8,854<span></span>
</td>
<td class="nump">$ 11,278<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualClassifiedCurrent', window );">Accrued warranty</a></td>
<td class="nump">5,478<span></span>
</td>
<td class="nump">5,105<span></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_ceco_ContractLiabilityCurrent', window );">Contract liability</a></td>
<td class="nump">9,197<span></span>
</td>
<td class="nump">7,875<span></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_ceco_LeaseLiabilitiesCurrent', window );">Short-term operating lease liability</a></td>
<td class="nump">3,950<span></span>
</td>
<td class="nump">4,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_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">17,257<span></span>
</td>
<td class="nump">15,765<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_AccruedLiabilitiesCurrent', window );">Total accrued expenses</a></td>
<td class="nump">$ 44,736<span></span>
</td>
<td class="nump">$ 44,301<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_ContractLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract liability current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ceco_ContractLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_ceco_LeaseLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lease liabilities, current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ceco_LeaseLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductWarrantyAccrualClassifiedCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents 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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<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.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_ProductWarrantyAccrualClassifiedCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>57
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975440900416">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Senior Debt - Summary of Debt (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<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_LongTermDebt', window );">Total outstanding borrowings under the Credit Facility</a></td>
<td class="nump">$ 130,826<span></span>
</td>
<td class="nump">$ 137,283<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Less: current portion</a></td>
<td class="num">(10,580)<span></span>
</td>
<td class="num">(10,488)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Total debt, less current portion</a></td>
<td class="nump">120,246<span></span>
</td>
<td class="nump">126,795<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=ceco_SeniorSecuredTermLoanMember', window );">Term Loan [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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Total outstanding borrowings under the Credit Facility</a></td>
<td class="nump">107,959<span></span>
</td>
<td class="nump">112,424<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Loan [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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Revolving credit facility</a></td>
<td class="nump">15,800<span></span>
</td>
<td class="nump">17,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_us-gaap_CreditFacilityAxis=ceco_SeniorDebtMember', window );">Senior Debt [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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Total outstanding borrowings under the Credit Facility</a></td>
<td class="nump">123,759<span></span>
</td>
<td class="nump">129,724<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_ShortTermDebtTypeAxis=us-gaap_LineOfCreditMember', window );">Line Of Credit [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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WarehouseAgreementBorrowings', window );">Outstanding borrowing under the joint venture term debt</a></td>
<td class="nump">8,123<span></span>
</td>
<td class="nump">8,855<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=ceco_TermDebtMember', window );">Term Debt [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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_DebtInstrumentUnamortizedDiscount', window );">Unamortized debt discount</a></td>
<td class="num">$ (1,056)<span></span>
</td>
<td class="num">$ (1,296)<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_DebtInstrumentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482900/835-30-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(f))<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 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<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/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69B<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69C<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69E<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69E<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69F<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69F<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 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<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 1B<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<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 1B<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<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 1B<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 18: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 19: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 20: 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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 25: 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 (c)<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_DebtInstrumentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentUnamortizedDiscount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 debt discount.</p></div>
<a href="javascript: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 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482925/835-30-45-1A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482949/835-30-55-8<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentUnamortizedDiscount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LineOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<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 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<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_LineOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69B<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69C<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 1D<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<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(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<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 4<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-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_LongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(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_LongTermDebtCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WarehouseAgreementBorrowings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of the outstanding short-term borrowings under a revolving line of credit used by mortgage bankers to finance the origination or purchase of loans.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(13))<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_WarehouseAgreementBorrowings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_CreditFacilityAxis=ceco_SeniorSecuredTermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=ceco_SeniorSecuredTermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_CreditFacilityAxis=ceco_SeniorDebtMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=ceco_SeniorDebtMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_ShortTermDebtTypeAxis=us-gaap_LineOfCreditMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShortTermDebtTypeAxis=us-gaap_LineOfCreditMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ceco_TermDebtMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ceco_TermDebtMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975439841632">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Senior Debt - Summary of Debt (Parenthetical) (Detail) - Term Loan [Member]<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_DebtInstrumentFrequencyOfPeriodicPayment', window );">Frequency of periodic payment</a></td>
<td class="text">quarterly<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=ceco_SeniorSecuredTermLoanMember', window );">Debt Instrument, Redemption, Through September 2025 [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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LineOfCreditFacilityPeriodicPaymentPrincipal', window );">Outstanding borrowings, quarterly principal installments payable amount</a></td>
<td class="nump">$ 2,232<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=ceco_SeniorSecuredTermLoanMember', window );">Debt Instrument, Redemption, Through June 2023 [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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LineOfCreditFacilityPeriodicPaymentPrincipal', window );">Outstanding borrowings, quarterly principal installments payable amount</a></td>
<td class="nump">550<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=ceco_SeniorSecuredTermLoanMember', window );">Debt Instrument, Redemption, Thereafter [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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LineOfCreditFacilityPeriodicPaymentPrincipal', window );">Outstanding borrowings, quarterly principal installments payable amount</a></td>
<td class="nump">$ 2,977<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_DebtInstrumentFrequencyOfPeriodicPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of the frequency of periodic payments (monthly, quarterly, annual).</p></div>
<a href="javascript: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.22)<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 470<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480848/942-470-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_DebtInstrumentFrequencyOfPeriodicPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482900/835-30-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(f))<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 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<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/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69B<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69C<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69E<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69E<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69F<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69F<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 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<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 1B<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<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 1B<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<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 1B<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1B<br><br>Reference 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 18: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 19: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 20: 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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1F<br><br>Reference 25: 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 (c)<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_DebtInstrumentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the required periodic payment applied to principal.</p></div>
<a href="javascript: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_LineOfCreditFacilityPeriodicPaymentPrincipal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CreditFacilityAxis=ceco_SeniorSecuredTermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=ceco_SeniorSecuredTermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_DebtInstrumentRedemptionPeriodAxis=us-gaap_DebtInstrumentRedemptionPeriodOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DebtInstrumentRedemptionPeriodAxis=us-gaap_DebtInstrumentRedemptionPeriodOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_DebtInstrumentRedemptionPeriodAxis=us-gaap_DebtInstrumentRedemptionPeriodTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DebtInstrumentRedemptionPeriodAxis=us-gaap_DebtInstrumentRedemptionPeriodTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_DebtInstrumentRedemptionPeriodAxis=us-gaap_DebtInstrumentRedemptionPeriodThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DebtInstrumentRedemptionPeriodAxis=us-gaap_DebtInstrumentRedemptionPeriodThreeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975438679104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Senior Debt - Additional Information (Detail)<br> $ in Thousands, &#8364; in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">6 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>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 07, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear', window );">Credit facility principal payments 2023</a></td>
<td class="nump">$ 5,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths', window );">Credit facility principal payments 2024</a></td>
<td class="nump">11,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo', window );">Credit facility principal payments 2025</a></td>
<td class="nump">111,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">111,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree', window );">Credit facility principal payments 2026</a></td>
<td class="nump">3,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour', window );">Credit facility principal payments 2027</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage', window );">Debt Instrument, Interest Rate, Effective Percentage</a></td>
<td class="nump">8.12%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8.12%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7.70%<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_DebtWeightedAverageInterestRate', window );">Weighted average interest rate on outstanding borrowings</a></td>
<td class="nump">7.88%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7.88%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8.29%<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_AssetsCurrent', window );">Assets Current</a></td>
<td class="nump">$ 281,370<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 281,370<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 281,437<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_Liabilities', window );">Liabilities</a></td>
<td class="nump">$ 358,321<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 358,321<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 362,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues | &#8364;</a></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">&#8364; 750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_OwnershipAxis=ceco_EffoxFlextorMadderMember', window );">EFM JV [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtWeightedAverageInterestRate', window );">Weighted average interest rate on outstanding borrowings</a></td>
<td class="nump">8.52%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8.52%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8.70%<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_AssetsCurrent', window );">Assets Current</a></td>
<td class="nump">$ 16,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 16,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 14,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsNoncurrent', window );">Assets, Noncurrent</a></td>
<td class="nump">26,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,700<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_Liabilities', window );">Liabilities</a></td>
<td class="nump">30,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="nump">13,200<span></span>
</td>
<td class="nump">$ 9,900<span></span>
</td>
<td class="nump">23,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 19,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=ceco_CreditAgreementMember', window );">Credit Agreement [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount', window );">Unused credit availability under credit facility</a></td>
<td class="nump">$ 111,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 111,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">109,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=ceco_CreditAgreementMember', window );">Credit Agreement [Member] | EFM JV [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecuredDebt', window );">Secured Debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,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_MinorityInterestOwnershipPercentageByParent', window );">Subsidiary, Ownership Percentage, Parent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_VariableRateAxis=ceco_FederalFundsRateMember', window );">Federal Funds Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt instrument, basis spread on variable rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.50%<span></span>
</td>
<td class="nump">0.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_VariableRateAxis=us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember', window );">Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt instrument, basis spread on variable rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.11%<span></span>
</td>
<td class="nump">0.11%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_ceco_MaximumConsolidatedLeverageRatio', window );">Maximum consolidated leverage ratio</a></td>
<td class="nump">3.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_MinimumMember', window );">Minimum [Member] | Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_ceco_MaximumConsolidatedLeverageRatio', window );">Maximum consolidated leverage ratio</a></td>
<td class="nump">1.75%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.75%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_MinimumMember', window );">Minimum [Member] | Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member] | Credit Agreement [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt instrument, basis spread on variable rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.11%<span></span>
</td>
<td class="nump">0.11%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Base Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt instrument, basis spread on variable rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.75%<span></span>
</td>
<td class="nump">1.75%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_ceco_MaximumConsolidatedLeverageRatio', window );">Maximum consolidated leverage ratio</a></td>
<td class="nump">4.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_ceco_MaximumConsolidatedLeverageRatio', window );">Maximum consolidated leverage ratio</a></td>
<td class="nump">0.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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] | Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member] | Credit Agreement [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt instrument, basis spread on variable rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.43%<span></span>
</td>
<td class="nump">0.43%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Base Rate [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt instrument, basis spread on variable rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.25%<span></span>
</td>
<td class="nump">3.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_StandbyLettersOfCreditMember', window );">Letters of Credit [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LettersOfCreditOutstandingAmount', window );">Aggregate principal amount outstanding under the credit facilities</a></td>
<td class="nump">$ 13,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13,300<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_CreditFacilityAxis=us-gaap_StandbyLettersOfCreditMember', window );">Letters of Credit [Member] | EFM JV [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LettersOfCreditOutstandingAmount', window );">Aggregate principal amount outstanding under the credit facilities</a></td>
<td class="nump">8,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,900<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_CreditFacilityAxis=ceco_BankGuaranteesMember', window );">Bank Guarantees [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Bank guarantee issuance under bilateral lines and collateral</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Bank guarantee agreement outstanding amount</a></td>
<td class="nump">48,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">48,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">45,800<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_CreditFacilityAxis=ceco_BankGuaranteesMember', window );">Bank Guarantees [Member] | Euro Denominated Bank Guarantee [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Bank guarantee agreement outstanding amount</a></td>
<td class="nump">1,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,300<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_CreditFacilityAxis=ceco_NetherlandsFacilityMember', window );">Netherlands Facility [Member] | Euro Denominated Bank Guarantee [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityLineItems', window );"><strong>Line Of Credit Facility [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Bank guarantee agreement outstanding amount</a></td>
<td class="nump">$ 2,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,300<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_ceco_MaximumConsolidatedLeverageRatio">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 consolidated leverage ratio.</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;">ceco_MaximumConsolidatedLeverageRatio</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_AssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold or consumed after one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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/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 7: 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 8: 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<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)(5))<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 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480097/470-10-S99-1B<br><br>Reference 17: 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_AssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage points added to the reference rate to compute the variable rate on the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482900/835-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482925/835-30-45-2<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.22(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateEffectivePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unused borrowing capacity under the long-term financing arrangement that is available to the entity as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_DebtWeightedAverageInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 interest rate of debt outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtWeightedAverageInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LettersOfCreditOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The total amount of the contingent obligation under letters of credit outstanding as of the reporting 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;">us-gaap_LettersOfCreditOutstandingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 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 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-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/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://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 22: 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-26)<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_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<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 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<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_LineOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LineOfCreditFacilityLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-3<br><br>Reference 2: 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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481544/470-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_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-3<br><br>Reference 2: 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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481544/470-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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-3<br><br>Reference 2: 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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481544/470-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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-3<br><br>Reference 2: 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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481544/470-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_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in remainder of current fiscal year.</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 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_MinorityInterestOwnershipPercentageByParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 parent entity's interest in net assets of the subsidiary, expressed as a percentage.</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_MinorityInterestOwnershipPercentageByParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 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 (a)<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 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 17: 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 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 23: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SecuredDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date, including the current and noncurrent portions, of collateralized debt obligations (with maturities initially due after one year or beyond the operating cycle, if longer). Such obligations include mortgage loans, chattel loans, and any other borrowings secured by assets of the borrower.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<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 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<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_SecuredDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_OwnershipAxis=ceco_EffoxFlextorMadderMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OwnershipAxis=ceco_EffoxFlextorMadderMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ceco_CreditAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ceco_CreditAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=ceco_FederalFundsRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=ceco_FederalFundsRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_BaseRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_BaseRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_CreditFacilityAxis=us-gaap_StandbyLettersOfCreditMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=us-gaap_StandbyLettersOfCreditMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_CreditFacilityAxis=ceco_BankGuaranteesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=ceco_BankGuaranteesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ceco_EuroDenominatedBankGuaranteeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ceco_EuroDenominatedBankGuaranteeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_CreditFacilityAxis=ceco_NetherlandsFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=ceco_NetherlandsFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975442590848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per Share - Number of Shares Outstanding for Calculation of Earnings Per Share (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="nump">$ 4,485<span></span>
</td>
<td class="nump">$ 3,724<span></span>
</td>
<td class="nump">$ 5,993<span></span>
</td>
<td class="nump">$ 5,701<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract', window );"><strong>Denominator</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted-average shares outstanding</a></td>
<td class="nump">34,918,412<span></span>
</td>
<td class="nump">34,619,216<span></span>
</td>
<td class="nump">34,881,625<span></span>
</td>
<td class="nump">34,531,050<span></span>
</td>
</tr>
<tr class="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 );">Common stock equivalents arising from stock options and restricted stock awards</a></td>
<td class="nump">1,385,000<span></span>
</td>
<td class="nump">525,000<span></span>
</td>
<td class="nump">1,357,000<span></span>
</td>
<td class="nump">641,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted weighted-average shares outstanding</a></td>
<td class="nump">36,302,664<span></span>
</td>
<td class="nump">35,143,782<span></span>
</td>
<td class="nump">36,239,331<span></span>
</td>
<td class="nump">35,171,727<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_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_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975437118896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per Share - Additional Information (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>May 10, 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_ceco_EarningsAndDividendsPerShareAbstract', window );"><strong>Earnings And Dividends Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive options and restricted stock units outstanding</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,300,000<span></span>
</td>
<td class="nump">100,000<span></span>
</td>
<td class="nump">700,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1', window );">Purchase of outstanding shares of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,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_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock (in shares)</a></td>
<td class="nump">86,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">230,000<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="nump">$ 2,000<span></span>
</td>
<td class="nump">$ 3,001<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_EarningsAndDividendsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Earnings and dividends per share.</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;">ceco_EarningsAndDividendsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 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 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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 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(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_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 5: 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(4)(b))<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(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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(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_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975442706832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share-Based Compensation - Additional Information (Detail) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</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_AllocatedShareBasedCompensationExpense', window );">Recognized share-based compensation awards</a></td>
<td class="nump">$ 2.2<span></span>
</td>
<td class="nump">$ 1.2<span></span>
</td>
<td class="nump">$ 3.8<span></span>
</td>
<td class="nump">$ 2.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Option exercised, intrinsic value</a></td>
<td class="nump">0.2<span></span>
</td>
<td class="nump">0.2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_TitleOfIndividualAxis=srt_DirectorMember', window );">Non-Employee Director [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</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_ProceedsFromStockPlans', window );">Cash received from employee stock option exercised</a></td>
<td class="nump">$ 0.2<span></span>
</td>
<td class="nump">$ 0.3<span></span>
</td>
<td class="nump">$ 0.3<span></span>
</td>
<td class="nump">$ 0.9<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period</a></td>
<td class="nump">10,000<span></span>
</td>
<td class="nump">25,000<span></span>
</td>
<td class="nump">20,000<span></span>
</td>
<td class="nump">77,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Option exercised, intrinsic value</a></td>
<td class="nump">$ 0.1<span></span>
</td>
<td class="nump">$ 0.1<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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of restricted stock awards granted</a></td>
<td class="nump">57,000<span></span>
</td>
<td class="nump">50,000<span></span>
</td>
<td class="nump">341,000<span></span>
</td>
<td class="nump">390,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Number of Options, Granted</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">25,000<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_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_ProceedsFromStockPlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the amount received from the stock plan 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 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockPlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="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 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-3<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)(1)<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 (a)(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 (a)(3)<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 (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<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 (c)(1)(iv)<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 (c)(1)(iv)(01)<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 (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 16: 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)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 17: 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><br>Reference 18: 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><br>Reference 19: 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><br>Reference 20: 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 (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 21: 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 (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 22: 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 (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 23: 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 (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 24: 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 25: 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 26: 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)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 27: 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)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 28: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://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 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(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_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975440190304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pension and Employee Benefit Plans - Components of Pension and Employee Benefit Expenses (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_RetirementPlanTypeAxis=us-gaap_PensionPlansDefinedBenefitMember', window );">Pension Plan [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_DefinedBenefitPlanDisclosureLineItems', window );"><strong>Defined Benefit Plan Disclosure [Line Items]</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="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost', window );">Net periodic benefit cost</a></td>
<td class="nump">$ 57<span></span>
</td>
<td class="nump">$ 107<span></span>
</td>
<td class="nump">$ 113<span></span>
</td>
<td class="nump">$ 214<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_RetirementPlanTypeAxis=us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember', window );">Health Care Plan [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_DefinedBenefitPlanDisclosureLineItems', window );"><strong>Defined Benefit Plan Disclosure [Line Items]</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_DefinedBenefitPlanInterestCost', window );">Interest cost</a></td>
<td class="nump">304<span></span>
</td>
<td class="nump">318<span></span>
</td>
<td class="nump">608<span></span>
</td>
<td class="nump">637<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets', window );">Expected return on plan assets</a></td>
<td class="num">(304)<span></span>
</td>
<td class="num">(285)<span></span>
</td>
<td class="num">(608)<span></span>
</td>
<td class="num">(571)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses', window );">Amortization of net actuarial loss</a></td>
<td class="nump">$ 57<span></span>
</td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">$ 113<span></span>
</td>
<td class="nump">$ 148<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_DefinedBenefitPlanAmortizationOfGainsLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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) recognized in net periodic benefit (cost) credit of defined benefit 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/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480535/715-20-45-3A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DefinedBenefitPlanDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_DefinedBenefitPlanDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expected return (loss) recognized in net periodic benefit (cost) credit, calculated based on expected long-term rate of return and market-related value of plan assets of defined benefit 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/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480535/715-20-45-3A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DefinedBenefitPlanInterestCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 recognized for passage of time related to defined benefit 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/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480535/715-20-45-3A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanInterestCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DefinedBenefitPlanNetPeriodicBenefitCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of net periodic benefit cost (credit) for defined benefit 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/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-17<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_RetirementPlanTypeAxis=us-gaap_PensionPlansDefinedBenefitMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RetirementPlanTypeAxis=us-gaap_PensionPlansDefinedBenefitMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_RetirementPlanTypeAxis=us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RetirementPlanTypeAxis=us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975440369824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pension and Employee Benefit Plans - Additional Information (Detail) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</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_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanContributionsByEmployer', window );">Defined benefit plan contributions</a></td>
<td class="nump">$ 0.2<span></span>
</td>
<td class="nump">$ 0.0<span></span>
</td>
<td class="nump">$ 0.2<span></span>
</td>
<td class="nump">$ 0.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PensionContributions', window );">Payment for Pension Benefits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.9<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_DefinedBenefitPensionPlanLiabilitiesNoncurrent', window );">Unfunded liability plans</a></td>
<td class="nump">$ 4.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4.1<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability, recognized in statement of financial position, for defined benefit pension plan, classified as noncurrent. Excludes other postretirement benefit plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480535/715-20-45-3<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480535/715-20-45-2<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-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_DefinedBenefitPensionPlanLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_DefinedBenefitPlanContributionsByEmployer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of contribution received by defined benefit plan from employer which increases plan 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/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-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_DefinedBenefitPlanContributionsByEmployer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PensionContributions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 pension benefit. Includes, but is not limited to, employer contribution to fund plan asset and payment to retiree. Excludes other postretirement benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (g)<br> -SubTopic 10<br> -Topic 230<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_PensionContributions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975439317280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional Information (Detail)<br> $ in Thousands, &#8364; in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_IncomeTaxesLineItems', window );"><strong>Income Taxes [Line Items]</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_LiabilityForUncertainTaxPositionsNoncurrent', window );">Liability for uncertain tax positions</a></td>
<td class="nump">$ 200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">394<span></span>
</td>
<td class="nump">$ 984<span></span>
</td>
<td class="nump">$ 1,062<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 993<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived', window );">Tax indemnification received</a></td>
<td class="nump">$ 500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective income tax rate</a></td>
<td class="nump">7.40%<span></span>
</td>
<td class="nump">19.80%<span></span>
</td>
<td class="nump">13.10%<span></span>
</td>
<td class="nump">13.10%<span></span>
</td>
<td class="nump">13.30%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign', window );">Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Percent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15.00%<span></span>
</td>
<td class="nump">15.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues | &#8364;</a></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">&#8364; 750<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_ConsolidatedEntitiesAxis=srt_SubsidiariesMember', window );">Foreign Subsidiaries [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_IncomeTaxesLineItems', window );"><strong>Income Taxes [Line Items]</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_DeferredIncomeTaxExpenseBenefit', window );">Deferred income taxes on undistributed earnings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Federal Authorities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_IncomeTaxesLineItems', window );"><strong>Income Taxes [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OpenTaxYear', window );">Open tax years</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2018<span></span>
</td>
<td class="text">2018<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_IncomeTaxAuthorityAxis=ceco_StateAndForeignAuthoritiesMember', window );">State and Foreign Authorities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_IncomeTaxesLineItems', window );"><strong>Income Taxes [Line Items]</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_OpenTaxYear', window );">Open tax years</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2017<span></span>
</td>
<td class="text">2017<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_ceco_IncomeTaxesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Income taxes.</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;">ceco_IncomeTaxesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: 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.Fact.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<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.Fact.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<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 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax settlement.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-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_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign</td>
</tr>
<tr>
<td style="padding-right: 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_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_LessorOperatingLeaseIndemnificationPaymentReceived">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount received for indemnification payment for tax effect other than investment tax credit for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479619/842-30-55-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_LessorOperatingLeaseIndemnificationPaymentReceived</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_OpenTaxYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tax year that remains open to examination under enacted tax laws, in YYYY format.</p></div>
<a href="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 15<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OpenTaxYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:gYearListItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 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 (a)<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 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 17: 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 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 23: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidatedEntitiesAxis=srt_SubsidiariesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ConsolidatedEntitiesAxis=srt_SubsidiariesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=ceco_StateAndForeignAuthoritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=ceco_StateAndForeignAuthoritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>66
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975439651456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Financial Instruments - Additional Information (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_FairValueOfFinancialInstrumentsLineItems', window );"><strong>Fair Value Of Financial Instruments [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 36,523<span></span>
</td>
<td class="nump">$ 54,779<span></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_ceco_CashHeldOutsideDomesticTerritory', window );">Cash held outside United States, principally in Netherlands, United Kingdom, China, and Canada</a></td>
<td class="nump">28,600<span></span>
</td>
<td class="nump">38,500<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=ceco_CreditFacilityMember', window );">Credit Facility [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_ceco_FairValueOfFinancialInstrumentsLineItems', window );"><strong>Fair Value Of Financial Instruments [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFairValue', window );">Fair value of debt issued</a></td>
<td class="nump">$ 131,900<span></span>
</td>
<td class="nump">$ 138,600<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ceco_CashHeldOutsideDomesticTerritory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash held outside domestic territory.</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;">ceco_CashHeldOutsideDomesticTerritory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_FairValueOfFinancialInstrumentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of financial instruments.</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;">ceco_FairValueOfFinancialInstrumentsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_DebtInstrumentFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion of debt instrument payable, including, but not limited to, notes payable and loans payable.</p></div>
<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 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69B<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481568/470-20-55-69C<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481139/470-20-50-1D<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-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_DebtInstrumentFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ceco_CreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ceco_CreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>67
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975443008144">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Legal Matters - Additional Information (Detail)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($) </div>
<div>Case</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherCommitmentsLineItems', window );"><strong>Other Commitments [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LitigationSettlementAmountAwardedFromOtherParty', window );">Cumulative settlement payments for cases involving asbestos-related claims</a></td>
<td class="nump">$ 6,800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_AverageCostPerSettledClaim', window );">Average cost per settled claim excluding legal fees</a></td>
<td class="nump">$ 33,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyPendingClaimsNumber', window );">Number of claims pending | Case</a></td>
<td class="nump">313<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyManagementsAssessmentAndProcess', window );">Assessment regarding Loss contingency impact Description</a></td>
<td class="text"> not aware of any pending claims or assessments, other than as described above, which may have a material adverse impact on its liquidity, financial position, results of operations, or cash flows.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">$ 44,736,000<span></span>
</td>
<td class="nump">$ 44,301,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_NoncatastrophicEventAxis=us-gaap_AsbestosIssueMember', window );">Asbestos Issue [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_OtherCommitmentsLineItems', window );"><strong>Other Commitments [Line Items]</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_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">$ 200,000<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_ceco_AverageCostPerSettledClaim">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost per settled claim based on the number of claims settled and the amount paid in aggregate for asbestos related claims.</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;">ceco_AverageCostPerSettledClaim</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LitigationSettlementAmountAwardedFromOtherParty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount awarded from other party in judgment or settlement of litigation.</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_LitigationSettlementAmountAwardedFromOtherParty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LossContingencyManagementsAssessmentAndProcess">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Describes management's process to evaluate the contingency matter and to estimate the impact on the financial statements and ongoing operations, such as added credit risk or loss of customers, including pertinent information to adequately disclose the matter and significant assumptions underlying the estimates.</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_LossContingencyManagementsAssessmentAndProcess</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyPendingClaimsNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pending claims pertaining to a loss contingency.</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 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-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_LossContingencyPendingClaimsNumber</td>
</tr>
<tr>
<td style="padding-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_us-gaap_OtherCommitmentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_OtherCommitmentsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncatastrophicEventAxis=us-gaap_AsbestosIssueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NoncatastrophicEventAxis=us-gaap_AsbestosIssueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975438751584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Additional Information (Detail)<br> $ in Thousands, &#8364; in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">6 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>Aug. 23, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 10, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_EarnOutFairValue', window );">Earn out, Fair value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,700<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_AssetsCurrent', window );">Assets Current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 281,370<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 281,370<span></span>
</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">$ 281,437<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">358,321<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">358,321<span></span>
</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">$ 362,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues | &#8364;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">&#8364; 750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Pre tax loss</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,324<span></span>
</td>
<td class="nump">$ 4,974<span></span>
</td>
<td class="nump">8,084<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,453<span></span>
</td>
<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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent', window );">Deferred cash consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember', window );">Malvar Engineering Limited [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired', window );">Acquisition of equity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">100.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,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_ceco_EarnOutFairValue', window );">Earn out, Fair value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">600<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableAndOtherAccruedLiabilities', window );">Accounts payable and accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">600<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent', window );">Deferred cash consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">400<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,128<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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember', window );">Malvar Engineering Limited [Member] | Customer Lists [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets', window );">Acquired intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember', window );">Kemco Systems Co Llc [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired', window );">Acquisition of equity</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">$ 24,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ceco_CompanyReceivedWorkingCapital', window );">Company Received Working Capital</a></td>
<td class="text">&#160;<span></span>
</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">400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_PurchasePrice', window );">Purchase Price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_InstallmentsPaid', window );">Installments Paid</a></td>
<td class="nump">1,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_AdditionalConsideration', window );">additional consideration</a></td>
<td class="nump">4,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ceco_EarnOutFairValue', window );">Earn out, Fair value</a></td>
<td class="nump">2,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_AccountsPayableAndOtherAccruedLiabilities', window );">Accounts payable and accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="nump">$ 26,329<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember', window );">Kemco Systems Co Llc [Member] | Customer Lists [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets', window );">Acquired intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_FiniteLivedIntangibleAssetUsefulLife', window );">Intangible assets, Useful Life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember', window );">Kemco Systems Co Llc [Member] | Tradename [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets', window );">Acquired intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_FiniteLivedIntangibleAssetUsefulLife', window );">Intangible assets, Useful Life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember', window );">Kemco Systems Co Llc [Member] | Technology [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets', window );">Acquired intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_FiniteLivedIntangibleAssetUsefulLife', window );">Intangible assets, Useful Life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ceco_TranscendSolutionMember', window );">Transcend Solution [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired', window );">Acquisition of equity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_HoldbackPayble', window );">Holdback Payble</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_NotesPayable', window );">Notes Payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ceco_InstallmentsPaid', window );">Installments Paid</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_DeferredCompensationCashBasedArrangementsLiabilityCurrent', window );">Deferred cash consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 22,396<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember', window );">Transcend Solution [Member] | Customer Lists [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Intangible assets, Useful Life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember', window );">Transcend Solution [Member] | Tradename [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Intangible assets, Useful Life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember', window );">Transcend Solution [Member] | Technology [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Intangible assets, Useful Life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_GeneralRubberLlcMember', window );">General Rubber LLC [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnSalesOfLoansNet', window );">Gain (Loss) on Sales of Loans, Net</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">137,522<span></span>
</td>
<td class="nump">$ 135,260<span></span>
</td>
<td class="nump">263,854<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 257,455<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_Ds21CoLtdMember', window );">DS21 Co., Ltd. | Tradename [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets', window );">Acquired intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_Ds21CoLtdMember', window );">DS21 Co., Ltd. | Customer Lists and Tradename [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionContingentConsiderationLineItems', window );"><strong>Business Acquisition Contingent Consideration [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Intangible assets, Useful Life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ceco_AdditionalConsideration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 consideration Earn Out</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;">ceco_AdditionalConsideration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_ceco_CompanyReceivedWorkingCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company Received Working Capital</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;">ceco_CompanyReceivedWorkingCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_EarnOutFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Earn out, Fair value</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;">ceco_EarnOutFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_ceco_HoldbackPayble">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Holdback Payble</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;">ceco_HoldbackPayble</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_ceco_InstallmentsPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Installments Paid</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;">ceco_InstallmentsPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ceco_PurchasePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Purchase Price</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ceco_PurchasePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ceco_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccountsPayableAndOtherAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 incurred and payable to vendors for goods and services received, and accrued liabilities 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 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(10)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndOtherAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_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_BusinessAcquisitionContingentConsiderationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_BusinessAcquisitionContingentConsiderationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 voting equity interests acquired at the acquisition date in the business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479328/805-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_BusinessAcquisitionPercentageOfVotingInterestsAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479581/805-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479668/805-30-25-6<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479613/805-30-35-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_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of assets, excluding financial assets and goodwill, that lack physical substance, having a projected indefinite period of benefit, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</p></div>
<a href="javascript: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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredCompensationCashBasedArrangementsLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 carrying value as of the balance sheet date of the liabilities for deferred compensation arrangements payable within one year (or the normal operating cycle, if longer). Represents currently earned compensation under cash arrangements (such as a profit-sharing plan, rabbi trust, and employee contract--excluding equity-based arrangements) that is not actually paid until a later date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 30<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483043/710-10-30-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 25<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483070/710-10-25-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 finite-lived intangible 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>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-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_GainLossOnSalesOfLoansNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 gain (loss) resulting from a sale of loans, including adjustments to record loans classified as held-for-sale at the lower-of-cost-or-market and fair value adjustments to loan held for investment purposes.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.13(h))<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_GainLossOnSalesOfLoansNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 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 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-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/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://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-30<br><br>Reference 22: 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-26)<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_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NotesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Including the current and noncurrent portions, aggregate carrying amount of all types of notes payable, as of the balance sheet date, with initial maturities beyond one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<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 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<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_NotesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -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 S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br><br>Reference 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 (a)<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 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 17: 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 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-40<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-32<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><br>Reference 23: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_CustomerListsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CustomerListsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=ceco_TechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ceco_TechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_GeneralRubberLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_GeneralRubberLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_Ds21CoLtdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_Ds21CoLtdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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=ceco_CustomerListsAndTradeNameMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=ceco_CustomerListsAndTradeNameMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975440597616">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Aug. 23, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Jan. 10, 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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_OperatingLeaseRightOfUseAsset', window );">Right-of-use assets from operating leases</a></td>
<td class="nump">$ 14,137<span></span>
</td>
<td class="nump">$ 16,256<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 211,144<span></span>
</td>
<td class="nump">$ 211,326<span></span>
</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">$ 183,197<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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember', window );">Kemco Systems Co Llc [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,902<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">341<span></span>
</td>
<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_OperatingLeaseRightOfUseAsset', window );">Right-of-use assets from operating leases</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,602<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible - finite life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,610<span></span>
</td>
<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_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,115<span></span>
</td>
<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_OtherAssets', window );">Other Assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">16<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets', window );">Total assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">33,586<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther', window );">Current liabilities assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(6,853)<span></span>
</td>
<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_OtherLiabilities', window );">Other liabilities Assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(404)<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 26,329<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember', window );">Transcend Solution [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,614<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,153<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible - finite life</a></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">8,930<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_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,839<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_OtherAssets', window );">Other Assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">231<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets', window );">Total assets acquired</a></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">23,767<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther', window );">Current liabilities assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,203)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred tax liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(168)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></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">$ 22,396<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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember', window );">Malvar Engineering Limited [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,240<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="text">&#160;<span></span>
</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">635<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible - finite life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,778<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,296<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets', window );">Total assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,949<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther', window );">Current liabilities assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,860)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred tax liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(961)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,128<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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of assets acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of other liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of intangible assets, excluding goodwill, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 property, plant, and equipment recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</p></div>
<a href="javascript: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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 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(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 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 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)(10))<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> -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><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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_OtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-12<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(12)(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(12)(b)(3))<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 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479440/944-210-S99-1<br><br>Reference 5: 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(12)(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 6: 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.15)<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_OtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975443569552">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Parenthetical) (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Aug. 23, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Jan. 10, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts Receivable, Net Current Assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,295<span></span>
</td>
<td class="nump">$ 39,181<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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember', window );">Kemco Systems Co Llc [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts Receivable, Net Current Assets</a></td>
<td class="nump">$ 2,328<span></span>
</td>
<td class="nump">$ 1,493<span></span>
</td>
<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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember', window );">Malvar Engineering Limited [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts Receivable, Net Current Assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,467<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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember', window );">Transcend Solution [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash, Current assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 52<span></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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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, acquired at the acquisition date. 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.</p></div>
<a href="javascript: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 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_KemcoSystemsCoLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_MalvarEngineeringLimitedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_TranscendSolutionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975444277392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Schedule of Unaudited Pro Forma Financial Information (Details) - General Rubber LLC [Member] - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_GainLossOnSalesOfLoansNet', window );">Net sales</a></td>
<td class="nump">$ 137,522<span></span>
</td>
<td class="nump">$ 135,260<span></span>
</td>
<td class="nump">$ 263,854<span></span>
</td>
<td class="nump">$ 257,455<span></span>
</td>
</tr>
<tr class="re">
<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 );">Net income attributable to CECO Environmental Corp.</a></td>
<td class="nump">$ 4,485<span></span>
</td>
<td class="nump">$ 4,292<span></span>
</td>
<td class="nump">$ 5,993<span></span>
</td>
<td class="nump">$ 7,019<span></span>
</td>
</tr>
<tr class="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>Earnings per share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsPerBasicShare', window );">Basic</a></td>
<td class="nump">$ 0.13<span></span>
</td>
<td class="nump">$ 0.12<span></span>
</td>
<td class="nump">$ 0.17<span></span>
</td>
<td class="nump">$ 0.2<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare', window );">Diluted</a></td>
<td class="nump">$ 0.12<span></span>
</td>
<td class="nump">$ 0.12<span></span>
</td>
<td class="nump">$ 0.17<span></span>
</td>
<td class="nump">$ 0.2<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479907/805-20-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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_GainLossOnSalesOfLoansNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 gain (loss) resulting from a sale of loans, including adjustments to record loans classified as held-for-sale at the lower-of-cost-or-market and fair value adjustments to loan held for investment purposes.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.13(h))<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_GainLossOnSalesOfLoansNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeLossFromContinuingOperationsPerBasicShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) from continuing operations 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 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 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 (f)<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 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 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 (b)<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 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 7: 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 8: 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 9: http://www.xbrl.org/2009/role/commonPracticeRef<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 10: 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 11: 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 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-7<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-03(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-1<br><br>Reference 14: 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(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1<br><br>Reference 15: 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.7-04(19))<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_IncomeLossFromContinuingOperationsPerBasicShare</td>
</tr>
<tr>
<td style="padding-right: 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_IncomeLossFromContinuingOperationsPerDilutedShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) derived from continuing operations during 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 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 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 (f)<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 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 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 (b)<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 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 7: 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 8: 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 9: http://www.xbrl.org/2009/role/commonPracticeRef<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 10: 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 11: 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 12: 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 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-7<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-03(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-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_IncomeLossFromContinuingOperationsPerDilutedShare</td>
</tr>
<tr>
<td style="padding-right: 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_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_BusinessAcquisitionAxis=ceco_GeneralRubberLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=ceco_GeneralRubberLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975441611824">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Business Segment Information - Net Sales and Income from Operation by Business Segment (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 137,522<span></span>
</td>
<td class="nump">$ 129,181<span></span>
</td>
<td class="nump">$ 263,854<span></span>
</td>
<td class="nump">$ 241,744<span></span>
</td>
</tr>
<tr class="re">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">9,257<span></span>
</td>
<td class="nump">8,603<span></span>
</td>
<td class="nump">16,943<span></span>
</td>
<td class="nump">14,064<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember', window );">Engineered Systems Segment [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">97,392<span></span>
</td>
<td class="nump">87,522<span></span>
</td>
<td class="nump">186,741<span></span>
</td>
<td class="nump">161,977<span></span>
</td>
</tr>
<tr class="re">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">19,330<span></span>
</td>
<td class="nump">14,089<span></span>
</td>
<td class="nump">35,607<span></span>
</td>
<td class="nump">23,894<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember', window );">Industrial Process Solutions Segment [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">40,130<span></span>
</td>
<td class="nump">41,659<span></span>
</td>
<td class="nump">77,113<span></span>
</td>
<td class="nump">79,767<span></span>
</td>
</tr>
<tr class="re">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">5,669<span></span>
</td>
<td class="nump">4,586<span></span>
</td>
<td class="nump">12,769<span></span>
</td>
<td class="nump">10,131<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember', window );">Corporate and Other [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Income from operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="num">$ (15,742)<span></span>
</td>
<td class="num">$ (10,072)<span></span>
</td>
<td class="num">$ (31,433)<span></span>
</td>
<td class="num">$ (19,961)<span></span>
</td>
</tr>
<tr><td colspan="5"></td></tr>
<tr><td colspan="5"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Includes corporate compensation, professional services, information technology, and other general and administrative corporate expenses.</span></td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<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_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_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975441331536">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Business Segment Information - Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentExpenditureAdditionToLongLivedAssets', window );">Property and equipment additions</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 4,123<span></span>
</td>
<td class="nump">$ 2,162<span></span>
</td>
<td class="nump">$ 7,233<span></span>
</td>
<td class="nump">$ 3,919<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,461<span></span>
</td>
<td class="nump">2,765<span></span>
</td>
<td class="nump">6,973<span></span>
</td>
<td class="nump">5,650<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">598,133<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">598,133<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600,291<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember', window );">Engineered Systems Segment [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentExpenditureAdditionToLongLivedAssets', window );">Property and equipment additions</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">890<span></span>
</td>
<td class="nump">444<span></span>
</td>
<td class="nump">2,027<span></span>
</td>
<td class="nump">688<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,814<span></span>
</td>
<td class="nump">1,274<span></span>
</td>
<td class="nump">3,599<span></span>
</td>
<td class="nump">2,486<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">427,732<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">427,732<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">432,098<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember', window );">Industrial Process Solutions Segment [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentExpenditureAdditionToLongLivedAssets', window );">Property and equipment additions</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">429<span></span>
</td>
<td class="nump">312<span></span>
</td>
<td class="nump">1,035<span></span>
</td>
<td class="nump">1,711<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,131<span></span>
</td>
<td class="nump">949<span></span>
</td>
<td class="nump">2,250<span></span>
</td>
<td class="nump">2,107<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">144,132<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">144,132<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">147,740<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember', window );">Corporate and Other [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_SegmentExpenditureAdditionToLongLivedAssets', window );">Property and equipment additions</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">2,804<span></span>
</td>
<td class="nump">1,406<span></span>
</td>
<td class="nump">4,171<span></span>
</td>
<td class="nump">1,520<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">516<span></span>
</td>
<td class="nump">$ 542<span></span>
</td>
<td class="nump">1,124<span></span>
</td>
<td class="nump">$ 1,057<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Identifiable assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 26,269<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 26,269<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,453<span></span>
</td>
</tr>
<tr><td colspan="6"></td></tr>
<tr><td colspan="6"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Corporate and Other assets consist primarily of cash and income tax related assets.</span></td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<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_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-22<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_SegmentExpenditureAdditionToLongLivedAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenditure for addition to long-lived assets included in determination of segment assets by chief operating decision maker (CODM) or otherwise regularly provided to CODM. Excludes expenditure for addition to financial instrument, long-term customer relationship of financial institution, mortgage and other servicing rights, deferred policy acquisition cost, and deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-25<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482785/280-10-55-48<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentExpenditureAdditionToLongLivedAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=us-gaap_CorporateAndOtherMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>74
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975443573584">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Business Segment Information - Goodwill (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 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_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 211,144<span></span>
</td>
<td class="nump">$ 211,326<span></span>
</td>
<td class="nump">$ 183,197<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember', window );">Engineered Systems Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">142,058<span></span>
</td>
<td class="nump">142,229<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember', window );">Industrial Process Solutions Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 69,086<span></span>
</td>
<td class="nump">$ 69,097<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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 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(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482598/350-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975437882032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Segment Information - Intra-Segment and Inter-Segment Revenues (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="nump">$ 137,522<span></span>
</td>
<td class="nump">$ 129,181<span></span>
</td>
<td class="nump">$ 263,854<span></span>
</td>
<td class="nump">$ 241,744<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember', window );">Engineered Systems Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="nump">97,392<span></span>
</td>
<td class="nump">87,522<span></span>
</td>
<td class="nump">186,741<span></span>
</td>
<td class="nump">161,977<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember', window );">Industrial Process Solutions Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="nump">40,130<span></span>
</td>
<td class="nump">41,659<span></span>
</td>
<td class="nump">77,113<span></span>
</td>
<td class="nump">79,767<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="nump">146,814<span></span>
</td>
<td class="nump">140,521<span></span>
</td>
<td class="nump">278,911<span></span>
</td>
<td class="nump">255,652<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member] | Intra-Segment Sales [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="num">(8,993)<span></span>
</td>
<td class="num">(10,801)<span></span>
</td>
<td class="num">(14,610)<span></span>
</td>
<td class="num">(13,174)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member] | Engineered Systems Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="nump">102,141<span></span>
</td>
<td class="nump">95,880<span></span>
</td>
<td class="nump">194,659<span></span>
</td>
<td class="nump">171,970<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member] | Engineered Systems Segment [Member] | Intra-Segment Sales [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="num">(4,553)<span></span>
</td>
<td class="num">(7,995)<span></span>
</td>
<td class="num">(7,635)<span></span>
</td>
<td class="num">(9,533)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member] | Industrial Process Solutions Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="nump">44,673<span></span>
</td>
<td class="nump">44,641<span></span>
</td>
<td class="nump">84,252<span></span>
</td>
<td class="nump">83,682<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segments [Member] | Industrial Process Solutions Segment [Member] | Intra-Segment Sales [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="num">(4,440)<span></span>
</td>
<td class="num">(2,806)<span></span>
</td>
<td class="num">(6,975)<span></span>
</td>
<td class="num">(3,641)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_IntersegmentEliminationMember', window );">Inter-Segment Elimination [Member] | Engineered Systems Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="num">(103)<span></span>
</td>
<td class="num">(176)<span></span>
</td>
<td class="num">(164)<span></span>
</td>
<td class="num">(274)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=us-gaap_IntersegmentEliminationMember', window );">Inter-Segment Elimination [Member] | Industrial Process Solutions Segment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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 );">Net sales</a></td>
<td class="num">$ (196)<span></span>
</td>
<td class="num">$ (363)<span></span>
</td>
<td class="num">$ (283)<span></span>
</td>
<td class="num">$ (460)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=ceco_EngineeredSystemsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=ceco_IndustrialProcessSolutionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsegmentsAxis=us-gaap_IntersubsegmentEliminationsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsegmentsAxis=us-gaap_IntersubsegmentEliminationsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ConsolidationItemsAxis=us-gaap_IntersegmentEliminationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=us-gaap_IntersegmentEliminationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>76
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.2</span><table class="report" border="0" cellspacing="2" id="idm139975440965120">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Subsequent Events (Additional Information) (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jul. 29, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</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_PaymentsForPreviousAcquisition', window );">Purchase Price</a></td>
<td class="nump">$ 17<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_PaymentsForPreviousAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash outflow representing an adjustment to the purchase price of a previous acquisition.</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 13<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_PaymentsForPreviousAcquisition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_SubsequentEventLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481674/830-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>77
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
MRX^1PSTS)NPXZ)&>>4WD$JF)E*F)U*2FC%,P6@T&&Q!LQKI$1B)E1B)PMOG
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
M-4"]WS FGV[J!OH#W]F_4$L#!!0    ( #&!_E@'AX#/.P,  '$+   8
M>&PO=V]R:W-H965T<R]S:&5E=#4N>&ULK59;;YLP%/XK%JNF5FH+X=ID"5)S
MF=9)W:IFW1ZF/3C@!#2P,]LD[;_?L2$T(22JMKR ;<[W^5P^X]-?,_Y;)(1(
M])QG5 R,1,IESS1%E) <BVNV)!2^S!G/L80I7YABR0F.-2C/3-NR?#/'*37"
MOEY[X&&?%3)+*7G@2!1YCOG+D&1L/3 ZQF;A,5TD4BV887^)%V1*Y-/R@</,
MK%GB-"=4I(PB3N8#X[;3FP3*7AM\3\E:;(V1BF3&V&\UN8L'AJ4<(AF)I&+
M\%J1$<DR101N_*DXC7I+!=P>;]@_ZM@AEAD69,2R'VDLDX%Q8Z"8S'&1R4>V
M_D2J>#S%%[%,Z"=:5[:6@:)"2)978/ @3VGYQL]5'K8 P-,.L"N W02X!P!.
M!7#>NH-; =RW[N!5 !VZ6<:N$S?&$H=]SM:(*VM@4P.=?8V&?*54Z60J.7Q-
M 2?#$:,Q5)W$"$:"96F,)4RF$EX@!RD0F\.G'$28*'6L"+JC$<L).G^BN(A3
ML+Y 5^AI.D;G9Q?H#*44?4M8(3"-1=^4X*/:R8PJ?X:E/_8!?QQTSZA,!)J
M7W$+?GP<[Q_!FY";.D'V)D%#^RCAYX)>(\>Z1+9ENRW^C-X.=]K"^;_=)_^\
M^TXRG%HMCN9S#O#5LCBHBI^W,R$Y'/]?;;4OV=UV=O5+[(DECLC  &)!^(H8
MX?MW'=_ZT);X4Y*-3TDV.1'93HG<ND3N,?;P"]PMJ:Y%6P%*K*^QZ@I9A6[7
ML?KF:CNQ^T9.M]LP&N\;!99M[QI-]HU\UW]EV@G0JP/TCFKPJTP(1]&.^,J
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
M:O+3]A,843\L<AC6+0EV^(]=]1'%T0=$(D(=>I9O;QX'Y,2]E^.FO]CG9>W
M5>/ E10;!+M0LKJH'MME7-0%5U<NM[7=4G>W>HM?J2W+^,T(]K#B<L]'B[_^
M!:?1WUQC?J?.3CQ >P_04.^+WR$B%54F-MPUS+9MVK35@6>_F$:$7$_VQ_)M
MHY2F46]T(BOI927!B?F4_Q?V6+O0:P%Q*1-55I0<5;U>_5S?97H.MU+L"UBB
MZ.$%7>STMBFJR[=/9_*>T_E.G9WX+>W]E@:G\S.'3K."M:&XRA';"%D7?S8/
M7"-ONTN.)V\^C0<S;!LE:>*9X6FO=!I4^J,"NI7%GS!5 #V(ZA6$52EYE;V@
M1\ <NBB%4I<NS5.'9CR0;-N,9VGLECSK)<^"DK^R0J(]*W<<L7Y]ZF7(F:P
MQ:@LV$-1-LO,I7MF:8H&JFT+,D_=HN>]Z'E0]*_:E[ 8%(/= \R G0*[HGYI
M5@?_8U=L]2A<<N>6&$S2@6#;9CISZ\61(5_TRAI^J%%>J$SLP+VO+>"NLQ.?
MT:%?'49X1CQ"CQ"-@T+OUTSRL4Y6<@01"3(XU6X\_JROG1&UZ_)823RCTZ%>
MVPK/TZE',#&"25#P+<LAE0+O=@+1A0ZL>RYAP3IW6M??B7-32ZQM-":>K88-
MF7$0>XMOU1[6I9 OJ(N20:_&=DA(YT.=ME&28(].PT\<!N@_ZS673DW4]MT0
MG0X;3UC%AIPXC,[EFE6/7.G,[XA_2G% J=[S1T'J0P-0" HL@T"@"KUXW8#$
M[TK(]^KMU$.&D3@,R4]9$UJ43BMXL6</I7M1V=@;XRF9)\-)=-C%<SSS+2U#
M2!Q&Y%*H;LZXJHM-<P#0J($);::7/V=<-0<!F-"R>0K!9Z>SHVW)ZR8J5;6$
MW,>=^MN,Q%&*K=AIF\T3'Y6P82D.P_2POSVLQ#8*QPE.AIAWF='(ZWH#31RF
MYIWD6U;D?:#4DR#T3N^2E+K;44[I-A3'&..4#K4[[&8QGKNU$\-/\AH_5QPT
MPNP#GW0D,.+]HHE-R#'%PWCELHHCSUH@!J0D#-)^0V[9BV\W$@<2XRD>!GF'
M69K,J4>A(2<)DQ,4RAWOUX/;A38'<9(.,R:'U9BD<T\R0@PO29B7MX<0<!(8
MLE (.2=8$!N>,/'#6.&P(FD4)9[!&<B2,&2_=2<^]LS#B\3F:3H;:G381)Z
M00QU29!9;1KPV@&@Z^-D[M.YE5"YS.+CW/M4H^$>"7/O]_-/R\Y1V+R;SJP#
MF,-JG&*?GPT3R?2LBDT!&%%O.>*3(&O/S6#>J[=3+QAXDC \/QWE:^<=ZH@#
MF%,2#T_\+C/(:7QL,EPE8:[V2[!-O6#E76C.7NH:P$D6ZM1N Y-:*;7#:$PH
MIIX &QNLQF&L]M*[#>-<>LY:H0.:Z0P/-XS+C,P@(?,(-W2-\5E;9E54K,K>
M4N0,4OOL*N<[]7;J!4/P^)6SKY#0YL ]R?>BW&L?9) I%;IT4WEFSW$$QM-H
M2#Z'69K$D><T%Q\5J,-8_PYYZ$M7\#]+MDUB.)036[?#+HZI5[A!=AQ&]K'P
M%2I%]3BNN=PT]0>G8!O+D/#/A_1VF>$T\>UNP^\XS.^[(R^W&X2CDC/5I<]F
MSQP0_^(<A(/<-+'&X+3R>=S@/7ZM]GO(^R%^ MYE6XQJSC%O":^Q@]@D2JP5
MXS";)9[:5&S 'H</NU^Z&NIAU3@5.JJZ.)T.$> P\SG7$#<.$_=.BHSSO NA
M'')F\<(Y4K7(?J+M3L)9"XZ)VY*U97?^S&56J*;BVMJ(K=_Q-FPIMA:-;83A
M>.$9EP%R_ J01=7D_:(Y/0#38),"U73]M9;%P\XOVGG*C8;%$9=9,O?D$=3
MF(9AO!2;C2YJ-ZZ%LWHW <[?L!Q<32(K$#K,/(N&&O+2\+FV3QE,DGV<>KM
M[!R!?:;5,2\=^MIA1^9T[BG(4X-.&D;GE]6*9TV=$ Z6374106SA*.LJC3 1
M>I0?VK'J]'//RB:8ZJV@EY,LLN:$"9\[!^@X$\<1'9[M'6884T]^1 UB:1BQ
M>I8N<@Y$A15TJ7]=;*YTBO=_#LO!5CQ+XF$AR&'GK_;3HU]VPP1>OED\8C5Z
MX(]%I>L"S7F"RT+DSC'9_$T22H?1RF%&TV3F*010@VD:QO1Y8^*Z\!4<C4WB
M.)UC:X)L,SI+?$D'-<2FZ>N9></G?">UZ^LU[]1J8CN3<AI, LY-RM^KMU,'
M&.C3,/2_=;AQ#M3Q,V\RM:;&MDKBF2]R&]S3UZK3IN#D%-<V/W[I ;YU>*1S
M6$U3JQHV.7I+:,/E8_/RE$)-2;1]LZ9_VK^@]:EY+6GP_!9?+=O7K$PW[5M?
MOS$)NUM!1KN"+J./4_"7;%^D:F]JL6W>17H0=2TVS>6:,\@AM0%\OA*B/MSH
M+^A?9UO\#U!+ P04    "  Q@?Y8VWB_*H("  "[!P  &    'AL+W=O<FMS
M:&5E=',O<VAE970X+GAM;*U5;4_;,!#^*U:&)I VG+<6Z-)(M"D:TY@J&-MG
MDUP;B\3.;*>%?S_;2;,":8487Q+[?,_S^,ZGNVC-Q;W, 11Z* LFQTZN5#7"
M6*8YE$0>\PJ8/EEP41*EMV*)926 9!94%MAWW2$N"65.'%G;7,01KU5!&<P%
MDG59$O$X@8*OQX[G; S7=)DK8\!Q5)$EW("ZK>9"[W#'DM$2F*2<(0&+L7/N
MC6:A\;<.ORBLY=8:F4CN.+\WF\ML[+CF0E! J@P#T;\53*$H#)&^QI^6T^DD
M#7![O6&_L+'K6.Z(A"DO?M-,Y6/GU$$9+$A=J&N^_@IM/ /#E_)"VB]:-[Z#
M@8/26BI>MF!]@Y*RYD\>VCQL ;Q= +\%^,\!X0Y T *"URJ$+2!\K<*@!=C0
M<1.[35Q"%(DCP==(&&_-9A8V^Q:M\T69J9,;)?0IU3@5S\DC6DDT!V%KCJ6
M$BK3@LM: /J,;F\2='APA X09>AGSFM)6"8CK+2V8<!IJS-I=/P=.@&ZXDSE
M$LU8!ED//MF/'^[!8QUS%[B_"7SB[R7\5K-C%+B?D._Z8<]]IJ^'!WWA_)_Z
M[,WJ3Y(1=%406+[@+570]]@-7=A/9WK;2%8DA;&CFY<$L0(G_OC!&[I?^C+]
MGF3)>Y+-WHGLR9N$W9N$^]CC'WI(7+*4EX .OW,IC_K>H:$86@HS$E9Q&)X.
M(KS:SN]+I^#$5-VV4_+2:7!V%CQUFO4XG;A>Y]3$B;>Z40EB:<> 1"FOF6I*
MLK-VD^;<-MAG]HDWFGH]]D1/IF:0_*-OQMH5$4O*)"I@H:7<XQ/=+$4S*IJ-
MXI7MA7=<Z<YJE[F>KB",@SY?<*XV&R/0S>OX+U!+ P04    "  Q@?Y8$,+L
M0$0"  "*!@  &    'AL+W=O<FMS:&5E=',O<VAE970Y+GAM;)V576^;,!1
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
MKLR>"AK+Z4$2*#(M"<L 0>$V0^.)$4_AK?3L*YFIHA3HO+.]+ /7T.VVTOZ
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
M:W-H965T<R]S:&5E=#$V+GAM;(U5VV[;, Q]SU<07C%L@%??X[1+ K1=AVU
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
M"4Y*.-CLF=:I>HO,[P8V@L&V%'Y6JKLA"P&JBLK"W34-O^%2\:57,2+E?;.
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
M:*]TQXP6>516@=XOI#3;!^N@_6LP^0=02P,$%     @ ,8'^6#:XXGUK!
M4PH  !D   !X;"]W;W)K<VAE971S+W-H965T,C N>&ULG5;;;N,V$'W/5PRT
MP2(!4EF2G<2;V ;B;(JFP&Z#>-L^%'V@I;%-A"*])!7'_?K.4)?8NTEZ>=&%
MG#ESYDJ.-L8^N!6BAZ=2:3>.5MZO+WH]EZ^P%"XV:]2TLS"V%)Y^[;+GUA9%
M$91*U<N2Y*Q7"JFCR2BLW=G)R%1>28UW%EQ5EL)NIZC,9ARE4;MP+Y<KSPN]
MR6@MECA#_^OZSM)?KT,I9(G:2:/!XF(<7:47TP'+!X'?)&[<SC>P)W-C'OCG
MMAA'"1-"A;EG!$&O1[Q&I1B(:'QM,*/.)"ON?K?H/P;?R9>Y<'AMU.^R\*MQ
M-(R@P(6HE+\WFY^P\>>4\7*C7'C"II;MGT:05\Z;LE$F!J74]5L\-7'841@F
MKRADC4(6>->& LN/PHO)R)H-6)8F-/X(K@9M(B<U)V7F+>U*TO.3NR:^0A=P
M4ZZ5V2+"%#4NI(<[);0;]3S98>E>WF!.:\SL%<PS^&2T7SFXT046^_H]XM>1
MS%J2T^Q-P)\K'4,_.8$LR09OX/4[I_L!K_\*WCUZ:9%*R[>N.OCC:NZ\I2+Y
M\R6':[S!RWC<.!=N+7(<1]09#NTC1I/W[]*SY/(-MH..[> M]/^9HK<QTS2&
M?\:%+RN$:U.NA=Z"6QOMC'4@0!O]0TXIMG)>>6.WW 9DH(!YH[UNH->$ C0Y
M($?K:4) I7D9&VLN#A:"E'2PJ+A>0'*OYL860N=([>!7X$F*=Z5>TB3X6C79
M<V 68:^COY/96YV;$F&&>66EW\)5[ED\_7 ^B/<<"REC,$8B'?*SQ=;(OEAI
M"IEWSN7&^4"+B+Y_-\RRY/(74K5PA$_L.!Z3"VS[A/6#1'H)Y+8/1LE'DBGX
MRQDE"^'I9^;IU;E44X]WO0DQ:O Y5CR)"@9]%*H2/. <,^4IS7G8U@I4SI6P
M$BEI7:SFN)1:<R1I 46^@H5TN5"P16'KR.P'@97V$MK2H!)PTC']1FIA% UY
M@KXX^+*RE(ZRG@,8\DI=C*&+9_+IY9V#(\E1,I6CFG3'H=WYT7_^.KC5'BEA
M31H.26W SW1(S[,D//OG!S=$,6=F%GUE-;34A7-(7AT%M6-Z9\/3\&95?I^>
MIW!\<%4:Z^5?(:YM'32QI$ IXQP)POD TK0/Z6!X\/G50CEDR4-(D_ D\4/(
MTL%> 9:B",&L^RFDTAO@H?1=7[$/Q.<0DCBCXT I)EA0@5,Z.0,^A)T[VKT6
MY#J6,7PVW]C<4%QK+F3=MWWYW\'[,="!&32H>*GK"^H-(LUV3YHFJ!W'D*7@
M;2D>OHU!X^<'WN;F_ZX0ZV*M=#,WE!1SJ;C5VZ+MHC6(DRY:S)]7TN>58&L_
M/BSU$7,LYT2^G]:.P0EYY)@SW234]H0;D5I=5<W8VIL&+1WJOG\W Z9"A8DW
MX\/<Q2^='+V=@[Y$NPS7&4=QJ[2OS_QNM;LQ7=47A6?Q^KKU25B: PX4+D@U
MB<_I@F+K*TS]X\TZ7!OFQM,E)'RNZ-:'E@5H?V&,;W_80'>/G/P-4$L#!!0
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
M1S!=19XWX/>U<W%X807C!\.K_P-02P,$%     @ ,8'^6-8KE MM#   XR,
M !D   !X;"]W;W)K<VAE971S+W-H965T,C0N>&ULW5K9<B.W%7W75Z!H)YFI
M:E%D<Y-F496DF22>S-A3'L=^2.4![ 9)6+T90).BOS[G7J 7BI*\Q7[P"\GN
MQG+7<^Y%\]6N-+=VHY03=WE6V->#C7/5B[,SFVQ4+NVPK%2!)ZO2Y-+ATJS/
M;&643'E2GIW%H]'\+)>Z&%R^XGL?S>6KLG:9+M1'(VR=Y]+LKU56[EX/QH/F
MQM=ZO7%TX^SR5277ZI-R_ZX^&ER=M:ND.E>%U64AC%J]'ER-7UQ/:3P/^%:K
MG>W]%J3)LBQOZ>*+]/5@1 *I3"6.5I#XVJH;E66T$,3X(:PY:+>DB?W?S>I_
M9]VARU):=5-FW^G4;5X/S@<B52M99^[K<O=/%?29T7I)F5G^%#L_=C(9B*2V
MKLS#9$B0Z\)_R[M@A]Z$\]$C$^(P(6:Y_48LY1OIY.4K4^Z$H=%8C7ZPJCP;
MPNF"G/+)&3S5F.<NKY(?:FTU6<B^.G-8D>Z?)6'VM9\=/S)[+CZ4A=M8\;9(
M57HX_PR2M.+$C3C7\9,+OJN+H9B,(A&/XND3ZTU:]2:\WN21]:YKBSO6BILR
M7^I"LI[B/U=+ZPP"XK\/J>Q7G#Z\(B7)"UO)1+T>( NL,ELUN/SK9^/YZ.43
M\DY;>:=/K7[@#B&+5+PK=>'$MZIP-79[2-RG%QS/AN)@T7^I/"G%I[UU*B>S
M#"/Q_OV-^*H05_4:\2;B"5L?GVZCR&Z5+/;('JQA5"K&HY'XBRA7_%3AIML+
MB*@@G;-TWV\ N!"?BW@Z'"%JLXP24!<BD783B=U&)QNQDU:LX)(BP:H[[39"
MBM3(G<#0WLY__>P\'B]>6B# MLRVNEB+!')H)U8RT1FV'XHWM:'[-,MMC%(B
M]U&I*"K%!VFPW63L@^I0+:,2!51((>MH.&U%79DRYW&$>LJ(<E<HT],.HDN&
M&Q9'5MK)3,CT>]@/@.4BK)O622-354, ((>HC$X@8DF6F0SGS7;P$-9+4_80
M%DK@)YTJP]$:/2F'@0\*IUT&%;"NDJ8 \HI*[DD.*^K*;]?W X%8BB?X:2N5
MZ)7&I?>$QNYP)!#-DB7+>KUIPB+8;Q[1[MZ#GXOQ<-$N2_ZLI$Y%VGG#*NB2
MBA]J:1R)OV(7#,4UBX!)E2F_]_@,"SB>([MH%:ETZM!AB#(-+"9UR2Q2&[&5
M6:W:B P6@-9+178>QHV$_<"S]=(B>&&C;!\<YRU(,Q;]D.5MM($%CK3X9J-M
M7X1<28LL)<L+/%DV2NJBJF'0HG2B7!)BR&6FFK5!A;?*-;)A6N-]S'VOMBH3
MDR8C>EMM-,(#4;7GV(%$ $[5 F=T8(I,RR4G"D5[:2@EL#?E53QZ>94DIL8=
M=0>:M\KR[?'++@F10@7I@5^VS'3*MK^6&>6M^$2\8TEJBH5Q%] ^/%-E]3H
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
M!N#YJ@2&A@O:H/U?S^7_ %!+ P04    "  Q@?Y8[4_BACH)  "V&@  &0
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
M.0T[OK)(.:5[3#Y"'0<=\J"C=M+8CZDNL*8H?"+RW+0Z$#SB#$EP#IG%L>M
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
M8Q>53:#UE91FY]@-ND&>_ 902P,$%     @ ,8'^6%P];_!#!   > L  !D
M  !X;"]W;W)K<VAE971S+W-H965T,S$N>&ULG59M;]LV$/[N7W%PAR(!M$BB
M7IW8!IQDW3*L0-!D&X9A'VB)MKE*I$O2<;)?OR-E*TZL:&N!("1/O.?NR(>/
M;[R5ZK->,6;@L:Z$G@Q7QJS/?5\7*U93?2;73."7A50U-;A42U^O%:.E<ZHK
MGP1!ZM>4B^%T[&RW:CJ6&U-QP6X5Z$U=4_5TR2JYG0S#X=[PB2]7QAK\Z7A-
ME^R.F5_7MPI7?HM2\IH)S:4 Q1:3X2P\OTSM?K?A-\ZV^F .MI*YE)_MXJ:<
M# .;$*M882P"Q>&!7;&JLD"8QI<=YK -:1T/YWOT#ZYVK&5.-;N2U>^\-*O)
M,!]"R19T4YE/<OL3V]636+Q"5MK]AVVS-XF&4&RTD?7.&3.HN6A&^K@[AP.'
M/'C#@>P<B,N[">2RO*:&3L=*;D'9W8AF)ZY4YXW)<6$OY<XH_,K1STQ_E++<
M\JH"*DJX$8:*)9]7#&9:,Z/AY)[B2I^.?8/!K(M?[( O&V#R!G *'Z4P*PT_
MB)*5+_U]3++-E.PSO22]@#]OQ!E$@0<D('$/7M16'CF\Z-LJO^:ZJ*3>* 9_
MSN;:*.3/7UW'T$2)NZ/8-W6NU[1@DR$^&LW4 QM.W[\+T^"BIX:XK2'N0W^N
MP8=[14LF:,VZ<NQ%Z<[Q^7CLN^'F"5 !P*P8:/X(=7.WS-XMX,VP]F;<<=IM
M3XRJW89K5K!ZSA1$H=L4P99JP+^%K% 5]/G@A MTDAN-WOH4[OI#_-$#/>@Z
M$VB-?:;!):VH*!A0 W.VY$)PL02Y@#537);P'9 P]"*2XFSD)5F 8YA'7CC*
M&DN0#V;%EPW7W"J.AC ,X/V[G(3D DCFA0G9+P<H*2@8 I^X4DP43X $$[JB
M3JI.@(P(G.(8YSB,L@Q2<I@=UGZ45QC'31:$=&3:0[:D)5O22[;C-_(]?.""
M&P:_\$4G[WH!NWFW0ZP0$?AS1-I$1,Y@W<>$.V98@1? M6'NH"P?&Z[AC9X/
M7OH?4^@5&Z^D-C KBDU]!K-:*G/681K<LV(E9"673Y86J66#G<1>E.<[2Y@U
MEB -!U=.VS%JA5DB58+(B[,0TM3+2/B\Q($$@Y:BVKF/8DB\%&';11"$QY2B
MY=\8!']!K9 #\@%Y:DE%@F8,O2"/<):D@WMI:-5QWHZNX04L#FX%2XB(EV:6
M7#E6-0IVIM%H9$W$2Z*\CW!I2[BTEW!W3:-@+[#EV0/K$NM9HU&<Z2X6]D;Y
M>A9^DR)VJMZ;,O>:@0[&4?/F_UR1!\*F^9:*)8$7IR%.HL0C23AP!.;_--K#
M'K'?T\QJCQ>%B2,*DC *X/2EN.V%+0R\#(7O/]B7HC]$6?"5!;P6NCA%SEKB
MQ<3+D6Y=+/,/NB%\8$O7\VD4A(TP36/46MNV<M9T4\_;FY[T(U5X@!HJMD#7
MX"Q#05--G]<LC%R[WFHN#;YF-UUA:\R4W8#?%U*:_<(&:)OMZ;]02P,$%
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
MF,6.+_2PN!C(ESUY]@[Y%7PQVM4$][K$\BT^9J%[M=E.[3([2?BYTY<P3OZ
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
MG]E)41.7FZT%C/;4IQE_PJ?1#'FPGH>3$G$6->3K>XI7W7S?1^9GG,[>UVM
MIQM8X_;1.EW9(?9OB8IIJ#@,DIA&' <LD306#$>2417'LYLZ@^W7(.@/C5EZ
M8DVY1<1/KD1 61@0P:B,%(ECREA(8D5C&<\^&0>V]1 TN Z'Y;BB+,'EN QI
M$@D<@9=8B"_'WW[EF+YR[#133-$0 ,) T"!1, @C*H,8XX7 E3B.)["1B@@:
M)1*P SV*,*2.S=Z:!G9@ZK0O[M]<KAMRPD[)"6$1T,&)'P8TB-MAR*@(P_:I
MHDHR<MHQ78S"PVQ3'F' "00>^@Q3)<(.DQ2XH\IM!AE:#K& )WCM6>^"DDUC
M5H +QGX'-/<%P*3/]H#3R[PVI5D_4@_$>"!K74,<I7^29M"^"VPQ^![:6TL_
MX%+:GI&)7A$-O2*:[!60 H#N'OV2[__:%AO/_U66%9X.2MYIV-NPE]N7(LRZ
MJK #_OWTX"8#DV)58/,G5]9J9\=ZR70@7ZR*GR'4 \*T1SA=SXG"8A;";S@:
M<*P+F21'[G:NH/XX830((_B-V7C]<IH$ OX7@82:9S&#<<2#KDXWKP# ^"CC
MH8^026P7,>4AWH=4,?7E&L1GI9'NE<8K?8(F3/@KCX6/-%+*(Q")/(Y=AOV
M**' B$<!@@_B47XC)DDD, ^,(\]!U'?;; J!#TM(WW6A!468>FCU2"STIR@X
MI&@@U3/T3B]U=0>K0P?J^NG^/DG]/IDF2?"8QB$F5(10?.K(LF,"Z@',F !S
M$8RW3 XIE91#8^4!%5'8-\7/8T2X*@&/"%P& >6*>?LQOYW)$N*!W@6U6X!V
M+\I'8E9DF=K<3^TZKTL?0*>7X"#K[,XF.IH<.IJ<;"0_&9/MBK(<:T&3EN-R
MYA_FN%_]E>H7D,XHZ4:<J^,2*Q6\4Z6_J+Z"U]V"6*0,"KSM5# *N9QZ0<0#
MG?$DG3=>-/7RMQ64*)^>!/&]KK=ZM.-/>GY9/;Z%EVE:/Y(<5&(%IZ5B [68
M%?>%]6RX/ 6)!.<RX@S1Z3+O7IZ[PN60K(XL$'VMWGNN\SR".^UV6A],_4P2
MTJ-5*M;"[%^8L^?<>!%^V"7:M+6TDLFTCY30D[1WYDG?OE)L 71&+U5/4%%%
M*(:^]7)(^M%WWR2<\1\&F7ODNTU0":T070H1@*/>#:HO7**5NF.J5LBN^9^
MQ%+J,)[>P:!_7^,^_'JY5Q%-DL"#B@%JU $,97A ?7NP.)YZR.>)UPWR.?4Q
MWK?'BU'J UB&=22#-3L(J/<PG#AF+PJ$K[WJE?!GK)9Z&?;4\^20^NXH=QSW
MB0"MP<$/*H'H.?=P-#CMSG0CW/,8BIUUW$-L+#B(J/<PG/&FN?^*JQX4++#3
MEKVB4=CC$S(XY/Z?')Z3D,H$N0]]_>]SCR+R].6#-(]0L/&6Y! 4MCB(J/<P
MG*I'7YV+O>]FE6[6_NL@BIUM[=I/:,/3X0/D5?O=[6EZ^_7RU[0! BTI]0I,
M@[,83D=-^T6PO7%FX[_"W1GG3.6'N4XSW> $^']EC.MO<('AL^SE_P%02P,$
M%     @ ,8'^6-:(?/.U @  %@@  !D   !X;"]W;W)K<VAE971S+W-H965T
M,S@N>&ULK59K3]LP%/TK5H8FD IYE\?:2$"$QL2FBL+V8=H'-[UM+1R[L]V6
M_?M=.R&4$@I"?*E?]QS?<QQ?M[>2ZD[/  RY+[G0?6]FS/S$]W4Q@Y+J SD'
M@2L3J4IJ<*BFOIXKH&,'*KD?!4'7+RD37M9S<P.5]>3"<"9@H(A>E"55_\Z
MRU7?"[V'B6LVG1D[X6>].9W"$,SM?*!PY#<L8U:"T$P*HF#2]T[#DSRU\2[@
M)X.57NL3JV0DY9T=7([[7F 3 @Z%L0P4FR6< ^>6"-/X6W-ZS986N-Y_8+]P
MVE'+B&HXE_P7&YM9WSORR!@F=,'-M5Q]A5J/2["07+M?LJIC X\4"VUD68,Q
M@Y*)JJ7WM0]K@#!Y 1#5@.BM@+@&Q&\%)#4@<<Y44IP/.34TZRFY(LI&(YOM
M.#,=&N4S88]]:!2N,L29[+0HY$(83:ZA +:D(PYDGPRKCX#("6D+V,W!4,;W
M,/)VF)/=G3VR0Y@@-S.YT%2,=<\WF)O=P2_J/,ZJ/*(7\OBV$ <D#CHD"J*D
M!7Z^'9Y#@?#0P>,6>/[*[A1W#UKA/AK:N!HUKD:.+W[%U0[Y(0U@<R6IT 2M
M(1=,4%$P,5TW]/<5$I!+ Z7^T^9=M5O2OINM#"=Z3@OH>WCU-:@E>-GG3V$W
M^-+FY$>2Y1]$]L3EN'$YWL;^^.VJQLDV\RJ2KB.Q57"9A7&<IMV>OURWI24L
M/ Z/XZ=A^=:4WBDX:00G6P4/E%PR5W"QWI-"P9@9PJ76T'KC*K)T3=%^-SV*
M-G2W127=8$/VUL3>*3MM9*=;9=](0SF^$,].NT,$F#;EZ?.SC+K'A\F&]):P
M,#J,-X_\>=A1' :/#E6B_+4B;%_,[U1-&5YZ#A/$!0>'2*.J5Z@:&#EW=7DD
M#59YUYWAPPW*!N#Z1&+MJ >VU#=_!;+_4$L#!!0    ( #&!_ECG64A=90,
M %\-   9    >&PO=V]R:W-H965T<R]S:&5E=#,Y+GAM;*U778_:.A#]*U9:
M5:W4;KX@="E$8A?8VTJ55KO]>*CZ8)(!K#HVM1WH_?<=)R%E(9NR:EX@=N:<
M8^=,QI/13JH?>@U@R*^,"SUVUL9LAJZKDS5D5%_(#0B\LY0JHP:':N7JC0*:
M%J",NX'G16Y&F7#B43%WJ^*1S UG FX5T7F64?7_%7"Y&SN^LY^X8ZNUL1-N
M/-K0%=R#^;RY53AR:Y:492 TDX(H6(Z=B3^\B6Q\$?"%P4X?7!.[DX64/^S@
M?3IV/+L@X) 8RT#Q;PO7P+DEPF7\K#B=6M("#Z_W[/-B[[B7!=5P+?E7EIKU
MV'GKD!26-.?F3N[^@VH_?<N72*Z+7[(K8P>7#DER;616@7$%&1/E/_U5/8<#
M /(T X(*$!P#>H\ P@H0GJO0JP"]<Q7Z%:!_+B"J -&Y@$$%&!1FE4^WL&9*
M#8U'2NZ(LM'(9B\*?PLT.L*$S<1[H_ N0YR))TDB<V$TN8,$V)8N.) W9)*F
MS&8*Y>2]*-/=YLW+*1C*^"N,^'P_)2^?OR+/"1/DTUKFFHI4CUR#:[+,;E+I
M7Y7ZP2/Z(?DHA5EK,A,II WX:3L^:L&[^"SJ!Q+L'\A5T$KX(1<7)/1>D\ +
M>@WKN3X?'C9MY]_49_^F/F^'3R%!N/\H_.8OZA35O4;X RO".C?#@B]\A.]/
M2FKR;;+01F'A^MZ48R5/KYG'%O.AWM $Q@Y6:PUJ"T[\XID?>>^:#.Z2;-HE
MV:Q+LGF79#<=D3U(DUZ=)KTV]GB2V0I&%HQS2,DB-T1(@Z>D31Z<R+$P*!QB
MY1)XMI*-DEMF#U)M2U>"U<.F56/I*G6C0M<>Z=LXO/2\D;L]3)?6Q3TU7<Y1
MG'6I.&]0#(X5;SI2?&!OO[:WWV[O_H12=3EX303V:)1C&T5% HW>E:3]@WWY
M070YZ!VYUZK]5/?.TYQUJ3GOG_CG^\$@#(\</ U[&_H'/C^P)JJMB5JMN=V_
M2@1[!)(HP*Z!<*EULR71R1H&)V_3:<P;_SAH>AH4GKPDIS%'$?/6O3VU '9$
M5MK@'O1S&:A5T:IK4KP'Y?%9S]9? Y.B"3Z:O_*'UW[#_-0?SLIF_P]]^>GQ
MD:H5P]+(88E2WL4 $T>5[7PY,')3=),+:; W+2[7^ 4$R@;@_:649C^P O4W
M5?P;4$L#!!0    ( #&!_E@GPRT*P (  (@'   9    >&PO=V]R:W-H965T
M<R]S:&5E=#0P+GAM;*U574_;,!3]*U:&)I ZDB;I!ZR-5!I-V\0D1,?V,.W!
M36\;"\?.;+=E_W[73AH5&@J3>$G\<<[U/<?V]6@KU;W. 0QY*+C08R\WIKST
M?9WE4%!]+DL0.+.4JJ &NVKEZU(!73A2P?TP"/I^09GPDI$;NU')2*X-9P)N
M%-'KHJ#J[Q5PN1U[76\W<,M6N;$#?C(JZ0IF8.[*&X4]OXFR8 4(S:0@"I9C
M;]*]3&.+=X ?#+9ZKTVLDKF4][;S93'V IL0<,B,C4#QMX$I<&X#81I_ZIA>
MLZ0E[K=WT3\Y[:AE3C5,)?_)%B8?>T./+&!)U]S<RNUGJ/7T;+Q,<NV^9%MC
M X]D:VUD49,Q@X*)ZD\?:A_V"-WX&4)8$\+7$J*:$+V6$-<$9[5?27$^I-30
M9*3DEBB+QFBVX<QT;)3/A-WVF5$XRY!GDJD41J'Y9*(U&$VH6)!K1N>,,\-
MDP]D5AT((I?D)?!I"H8RKL^0=C=+R>G)&3DA3)#ON5QK1.N1;S!IN[2?U0E>
M50F&SR3X=2W.211T2!B$<0M]>IR>0H;TKJ-'+?3TA=4IKAZTTGUTNK$[;.P.
M7;SH);NWS.1DZO875*<RM$/HTH B$XZ7D8H,"%YK,E6P8(9<2ZT[R% *A"&_
M)G/M OUN<[3*(6[/P1:22UW2#,8>5@H-:@->\OY=MQ]\;//W+8.E;Q3LD?=1
MXWUT+#IZK^LS"]HP+!F +:H$$RMM#RD\9*"U/>=XH+D;Q<*T%IDL2@X6G=6[
MUWJ,J\7[;G%;;#=)KQ<-AB-_L^_F(:K?[PWBQZCT$#7H!D'0H![ICQO]\5']
M5SM5C[1FQUSY'_WQH?Z+8:_[1'\+JC^\N'BB_Q 5A8,#_?Y>V;-OU#>J5DQH
MPF&)O.!\T/.(JNI^U3&R=)5P+@W>.]?,\:D$90$XOY32[#JVN#:/;_(/4$L#
M!!0    ( #&!_EAAZ;P[7P,  &,,   9    >&PO=V]R:W-H965T<R]S:&5E
M=#0Q+GAM;+5776_;.!#\*X1:'!*@C61]V4IM T[4XE(D0)!<KP^'/M#2VB8J
MD3Z2LG/]]5U*LBK9BML4OA>;I':&.T-JL1IOA?RJ5@":/.495Q-KI?7ZTK95
MLH*<J@NQ!HY/%D+F5.-4+FVUED#3$I1GMNLXH9U3QJWIN%R[E].Q*'3&.-Q+
MHHH\I_*_*\C$=F(-K-W" UNNM%FPI^,U7<(CZ$_K>XDSNV%)60Y<,<&)A,7$
MF@TNX\C$EP%_,]BJUI@8)7,AOIK)33JQ'),09)!HPT#Q;P/7D&6&"-/XM^:T
MFBT-L#W>L7\HM:.6.55P+;+/+-6KB36R2 H+6F3Z06S_A%I/8/@2D:GREVSK
M6,<B2:&TR&LP9I S7OW3I]J'%@!Y^@%N#7#W ?XS *\&>+\*\&N 7SI322E]
MB*FFT[$46R)--+*906EFB4;YC)MC?]02GS+$Z>FUX%JB^62F%&A%*$_)+:-S
MEC'-0)&S69HR<T(T(S>\NF8X.R=G,6C*,G5.WI)/CS$Y>WU.7A/&R5\K42BD
M46-;8X)F&SNID[FJDG&?228D=YC.2I'W/(6TB[=16*/.W:F[<H\2?BSX!?&<
M-\1U7+\GG^OC\!@2A ]*N-<#CW^R.\7=G5YX1XW7G)57\GF_>5;_W"* W&C(
MU9<^\RMVOY_=U)=+M:8)3"PL( KD!JSI'Z\&H?.NS[E3DL4G(NNXZC>N^L?8
MT555>PE*,[S>@",J.>-+9>XS/"6@%!$+@D9GY2K6JX(G(E]G8**3^EQZ;WRU
M>5AN;FKP9AH$WG TMC=M-P^CPC 8^MVH^#!J.' <IXGJZ \:_<%1_5<[51VM
MR3%77J(_.-0?C8+!GOXJ*FA'A:,HVM-_&.6YP^?TAXW^\"?G7[]5[5?I 1*Q
MY.P;JIN9V09X 7WR*NY1*R7G8K@G[NC^+WU53D36L6K86#4\:M4L260!>T7G
M#O(YR-Z"<Y3MI07GE&3QB<@Z+HX:%T?_:QD?G=+54Y+%)R+KN!HUKD:_=#?A
M"3MB!;VU*#JH19';*A^5(X=!PV@_*#X,\H.#0F2WVK(<Y+)L;Q66RX+KJD-K
M5IL.>E8VCO:/\*K]OJ-RR;@B&2P0BB4&BZ"L6MIJHL6Z;/+F0F/+6 Y7^!4
MT@3@\X40>C<Q&S3?%=/O4$L#!!0    ( #&!_E@)G[14MP(  (('   9
M>&PO=V]R:W-H965T<R]S:&5E=#0R+GAM;*U574_;,!3]*U:&)I" ?#8IK(T$
MK1!,VH8HC(=I#VYZVUHX=F:[+?S[72<E*ZWI]K"7Q([O.?><:_NFMY+J2<\!
M#'DNN=!];VY,=>[[NIA#2?6IK$#@RE2JDAJ<JIFO*P5T4H-*[D=!D/HE9<++
M>_6W6Y7WY,)P)N!6$;TH2ZI>+H'+5=\+O=</=VPV-_:#G_<J.H,1F(?J5N',
M;UDFK 2AF11$P;3O783G@\S&UP'?&:STQIA8)V,IG^SD9M+W BL(.!3&,E!\
M+6$ G%LBE/%KS>FU*2UP<_S*?E5[1R]CJF$@^2.;F'G?ZWID E.ZX.9.KJYA
M[:=C^0K)=?TDJR8VPXS%0AM9KL$X+YEHWO1Y78<-0)B\ XC6@.A? ?$:$-=&
M&V6UK2$U-.\IN2+*1B.;'=2UJ='HA@F[BR.C<)4ASN0W8@G"2,5 DQ,R:O:2
MR"G97#@<@J&,'V'$PVA(#@^.R %A@MS/Y4)3,=$]WZ 6R^@7Z[R73=[HG;R?
M%^*4Q,$QB8(H<< '^^%#*! >UO#X+=S'"K1EB-HR1#5?_)<RO!R3KWAU?ER,
MM5%XQ'ZZG#54B9O*7KMS7=$"^A[>*PUJ"5[^\4.8!I]</O\3V1O7<>LZWL>>
MW]$5GB4#BE'NW,,&GM9PVP^6>91UT[.>O]RTX(CJ=,,_46^T):VV9*^V1[S]
M]HQ52A:@G>H:@LY&WC#,XFA+W6[4618&;G&=5EQGK[@K)AC>N0F92>D^_9V=
MK-%9T-F2Y@B*TZY;6MI*2_=*^S;6DH,N0!1 *,<N37'DDICN9#])@CC<TNB(
MBKO!.R*S5F2V5^2]-)3C[K8MQJ4OVSE6<3?)MFOHB$J"[O;A\S<ZI/T[?:%J
MQH0F'*:("TXS-*B:CM],C*SJICF6!EMP/9SC3Q*4#<#UJ93F=6+[</O;S7\#
M4$L#!!0    ( #&!_EA\L46UJ@(  .\'   9    >&PO=V]R:W-H965T<R]S
M:&5E=#0S+GAM;*U5;6_3,!#^*U:8T"9!DR99!R6-U#9%#&G2M&GP ?'!3:Z-
M-<<NMMMN_YZSDX9VRLH$^Y+8YWN>>[/ODJU4][H$,.2AXD*/O-*8U=#W=5Y"
M175/KD#@R4*JBAK<JJ6O5PIHX4 5]\,@&/@59<)+$R>[5FDBUX8S =>*Z'55
M4?4X 2ZW(Z_O[00W;%D:*_#39$67< OF;G6M<.>W+ 6K0&@F!5&P&'GC_G 6
M6WVG\(W!5N^MB8UD+N6]W5P6(R^P#@&'W%@&BK\-3(%S2X1N_&HXO=:D!>ZO
M=^R?7>P8RYQJF$K^G16F''D?/%+ @JZYN9';+]#$<V[Y<LFU^Y)MK7L1>"1?
M:R.K!HP>5$S4?_K0Y&$/@#S=@+ !A$\!\3. J %$+[40-X#XI1;.&X +W:]C
M=XG+J*%IHN26**N-;';ALN_0F"\F[#VY-0I/&>),>BDV((Q4##1Y3\9%P6S]
M*">7HKZ$MIJG&1C*^!EJW-UFY/3DC)P0)L@5XQS/=>(;=,42^GEC=E*;#9\Q
M&Y$K*4RIR4P44'3@L^/XP1&\CREH\Q#N\C )CQ)^78L>B8)W) S"N,.?Z<OA
M45<X_V=]]L_6#Y(1M9<B<GS17R[%(\F8SKG4:P7DQWBNC<*'_;.KW#5AW$UH
MF]U0KV@.(P^[F0:U 2]]^Z8_"#YUY?HUR;+7))N]$ME!5>*V*O$Q]G1<R;4P
MFN0*\)5"08PDI@1".39[*G(@^&*)G&O)P0"^SZ:(7>6J+7UTENPHV:1!+TS\
MS7X5NG3B0YVL2^?B4&?6I3-H=>I4^'L=K *U=*,#0[41U_>VE;;3:>R:\A/Y
MI#^<]COD&4ZS>OC\H:]'X1552R8TX;! 4^@^-EA5CY=Z8^3*]<^Y--B-W;+$
MB0S**N#Y0DJSVU@#[8Q/?P-02P,$%     @ ,8'^6!TY&;$\ P  LPH  !D
M  !X;"]W;W)K<VAE971S+W-H965T-#0N>&ULK99M;]HP$,>_BI55TR9M39Q
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
M&.C[2\[5\\*<;C2G69/_ %!+ P04    "  Q@?Y8>$&?0'\#   *#0  &0
M 'AL+W=O<FMS:&5E=',O<VAE970T-BYX;6RM5VV/TS@0_BM60 @DV+RG86DC
MM4VYXW1(*_8X/ISXX";3UN#8Q7:VR_WZLY-LZ(LW['+]TL;./,_,/..7R7C'
MQ5>Y 5#HMJ),3IR-4MM+UY7%!BHL+_@6F'ZSXJ+"2@_%VI5; ;AL0!5U \]+
MW H3YF3C9NY*9&->*TH87 DDZZK"XOL,*-]-'-^YF_A UAME)MQLO,5KN ;U
M<7LE],CM64I2 9.$,R1@-7&F_N4B-?:-P=\$=G+O&9E,EIQ_-8-WY<3Q3$!
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
M7<JZ?=43+595!Y@)C?VD&N;8\4&: %Q?"*%W$]-4VO\0Z1]02P,$%     @
M,8'^6! ,)F4/!   [1,  !D   !X;"]W;W)K<VAE971S+W-H965T-#DN>&UL
MO5A=CYLX%/TK%ENM6JD=,"1 9A.D;:*J4TW5T:2S^U#UP0$G\19PUC9)VU^_
M-C!\) XSD;Q]2?BX]_@>^]@<>WJ@[!O?8BS ]RS-^<S:"K&[MFT>;W&&^!7=
MX5R^65.6(2%OV<;F.X914B9EJ>TZCF]GB.16-"V?W;%H2@N1DAS?,<"++$/L
MQUN<TL/,@M;C@WNRV0KUP(ZF.[3!2RP>=G=,WMD-2D(RG'-"<\#P>F;]":_G
MKJ,2RHB_"#[PSC505%:4?E,W-\G,<E1%.,6Q4!!(_NWQ'*>I0I)U_%N#6DV;
M*K%[_8C^KB0OR:P0QW.:_DT2L9U9H042O$9%*N[IX3VN"8T57DQ37OZ"0Q7K
MCRP0%US0K$Z6%60DK_[1][HC.@GP7();)[C/3?#J!*\D6E56TEH@@:(IHP?
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
MFF#4SH#V%TK9NXD+T+;5R6]02P,$%     @ ,8'^6(6<Z#Z3#@  U,8  !D
M  !X;"]W;W)K<VAE971S+W-H965T-3$N>&ULO9UM;YO('L6_RLB[6K52;FW
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
M"M5D4!IO6X-FF ;5E"B:Z3,=IDWM8=H?*K]3Z:HP5+:W]\14#W;IOCM9*"V
MTBB4QJ T#J4)*$VB:*;Y== V/4[0-H4&;5!: *51*(U!:1Q*$U":1-%,8^N@
M;6H/VGZT>O :PRMNXP1Z;N]#;]]VT:1030:E\;8U:*D>H(D:BK;SV3"[4RH/
MPCR\.%NK]%;-U6J5D47IDW(ONO<I2=5-X4/G[3MW,&Q\_MYY.W=:/@^<MZSZ
M?*CQ%V>;\%9=ANEM%&=DI6X*J=&;:5&$I>7\Y<<W>;(Y'Q2'B^LDSY-U]?).
MA4N5E@L4W]\D2?[XIA1X2-(OU>I<_ ]02P,$%     @ ,8'^6,!!7YRK P
MT@P  !D   !X;"]W;W)K<VAE971S+W-H965T-3(N>&ULK5?;CMLV$/T50@V*
M+)"L[A=O;0-K2T43-.DBF[0/11]HB;:)E4B%I.SD[S.4M%I;9IQ%ZA=;),\<
MSAR..*/IGHL'N25$H2]5R>3,VBI5W]BVS+>DPO*:UX3!RIJ+"BL8BHTM:T%P
MT1I5I>TY3F17F#)K/FWG[L1\RAM54D;N!))-56'Q=4%*OI]9KO4X\8%NMDI/
MV/-IC3?DGJA/]9V D3VP%+0B3%+.D"#KF77KWF2)QK> ORG9RX-GI"-9<?Z@
M!V^*F>5HATA)<J49,/SMR)*4I28"-S[WG-:PI38\?'YD_[V-'6)984F6O/R'
M%FH[LQ(+%62-FU)]X/L_2!]/J/ER7LKV%^U[K&.AO)&*5[TQ>%!1UOWC+[T.
M!P; 8S;P>@-O;!!\Q\#O#?SG[A#T!L%S=PA[@S9TNXN]%2[%"L^G@N^1T&A@
MTP^M^JTUZ$69SI-[)6"5@IV:9U@PRC82U42@^RT6!+U&[YMJ!4.^[F8D^JM1
M4F%6 !)!;J(E+O.FQ.U1 VH@N1M(7J9$85I> =NG^Q2]?'&%7B#*T,<M;R0P
MR:FMP'WMA)WWKBXZ5[WON.JC=YRIK409*TAAL$_/VT=G[&V0;=#.>]1NX9TE
M?-NP:^0[KY#G>('!G^7SS7U3./]O]^RG=S\2PQ\2R6_Y_!\ETE,._'N[DDK
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
MJ#Y(Y17T^U6:JN>'O('ZJMK\?U!+ P04    "  Q@?Y8U/FXPRD#  "8"0
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
M_0E!90_0^Y649K^Q%S1_:V;_ E!+ P04    "  Q@?Y8W0%(N"80   :^@
M&0   'AL+W=O<FMS:&5E=',O<VAE970V,"YX;6R]W5MOV\@!AN&_0KA%L0ND
ML4CJX*2)@<3D'),B2';;BZ(7M$3;0F3))25G _3'EY(54R,Q(])XZYM=G_@,
M:?.+..*GT9MOB^)K>9/GR^"/V]F\?'MRLUS>O3X]+<<W^6U6OES<Y?/J.U>+
MXC9;5I\6UZ?E79%GD\U&M[/3J-<;GMYFT_G)^9O-USX5YV\6J^5L.L\_%4&Y
MNKW-BN_O\]GBV]N3\.3'%SY/KV^6ZR^<GK^YRZ[S+_GR][M/1?79Z:,RF=[F
M\W*ZF =%?O7VY%WXVHX&ZPTV/_&/:?ZMW/DX6!_*Y6+Q=?V)GKP]Z:WW*)_E
MX^6:R*K_W><7^6RVEJK]^,\6/7D<<[WA[L<_=+$Y^.I@+K,ROUC,_CF=+&_>
MGIR=!)/\*EO-EI\7WU2^/:#-#HX7LW+SW^#;P\^.1B?!>%4N%[?;C:L]N)W.
M'_Z?_;']1>QL$$4_V2#:;A"UW2#>;A"WW:"_W:#?=H/!=H-!VPV&VPV&;3<8
M;3<8M=W@;+O!6=L-7FTW>-5V@[#WXR_7:[W)XQ_[X:1[.$LVIUB2+;/S-\7B
M6U"L?[[RUA]LSM/-]M69-9VO(_5E653?G5;;+<_?C?^SFI;3]>E=!G\-WDTF
MFX^S6:#G#X%=G_B_)/DRF\Y^#?X<3.?!;S>+59G-)^6+X"]_.HN'_;^MO_IQ
M.INME3>GRVJ_UOKI>+L/R<,^1#_9ASCXN)@O;\H@G4_R2</VPK_]T+/]:?7[
M>/RE1#]^*>\C+_AN=?TRB.(70=2+XN#W+TGPRY]_;=BO"S_S,2M>!G%XE$G\
MC%G-*Z:W8?H>)FW/^/9&,'LCNS#I[Y^#7[;G4A.FF$/3[?]>OD,S?B;)QZW^
M[/;(0675087>@W).[O@Q\?'&C7_BOE^5U5?*,MB)?G!1!6@ZO\[GR_6'Y722
M%P_)_]>'ZH<#O<QORW\W',/[A['ZS6.MKP=>EW?9.'][4CW@EWEQGY^<_^5/
MX;#WMZ8XD5A"8BF)"1*3)*9(3).8(3$+84[\^H_QZ_OT\S0KYD%U;?LB$-FT
M".ZSV2IO"I97Z1HL$DM(+"4Q06*2Q!2)Z0=LN,'64Z;[\VC4Z[TYO=\-##FB
MA3 G,(/'P R\@7E7EOFR#"Y615$]/#5%Q;M]UZB06#(X_$N=A?%H[V^5DF.*
M=F-*<DQ%8IK$3.-OHQ^/W-^&A<9T3O#AXPD^])[@'Z;9Y71678?E37.G]]Z-
MNY[=))8\8(.=WVT\.(NC<._L)L<4[<:4Y)B*Q#2)F>'!V1T/H[/]QP(+C>F<
MW:/'LWOD/;L_Y_?Y?)67P7]_/%G0=))[C:XG.8DE)):2F" Q^8"%X<ZI-!KL
MG4>*'%&3F"$Q"V%.7,X>XW+FC<NG(@^6V1_!;%$V/AIXM^X:%!)+S@[^91[$
M47_OL>#LX!^L_JO1W@^)0^FL=[;W0Y+<=W6X6Z/^('9'U.2(AL0LA#DG[*O'
M$_;5L7_?%[/[Z?PZN"CRR71936O'ZZN9[\&_/N:WEWG1^+21U^QZ&I-80F(I
MB0D2DR2F2$R3F"$Q"V%.S,)>?:.F]XS/VVX'@Q*(:@FJI:@F4$VBFD(UC6H&
MU2REN5'<N6<:>A_SDOPJ+ZI'NV"<E3?!>#=XC5GS:IVS%AX^I='?G_(EZ)@I
MJ@E4DZBF4$VCFD$U2VENAJ(Z0Y$W0Q^SV7U6!.G\NOI&7JPO(#],;Z?+*E6^
M"T>_VCE+I):@6HIJ M4DJBE4TZAF4,U2FINY^LY_^)RW_D/TWC^J):B6HII
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
MK<7Z!ZKO7RT6RQ^?K ?XMBB^;@[G_']02P,$%     @ ,8'^6/]F[K^^!P
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
M'1N^AISDM9SD*#EI!O7. 51.0FDNE.;Q#M4YLVDS!J\A)WDM)SE$3IHIO3,
ME9-0F@NE>;RM.L>4M8X+H6YRN/<(K^(9<)=!=ALF.8G$2N&MXXE*9+9]K-KV
MC4S7Y5.];E(IT[A\>2>"I<B*&=3GJS253V^*!X7M'FXW_P]02P,$%     @
M,8'^6-5@;#0O!   KQD  !D   !X;"]W;W)K<VAE971S+W-H965T-C(N>&UL
MM9GO;YLX&,?_%8N;3IW4A0#YT?222&D ;;=VJIIM]V*Z%PX\2:P!SFR3;/_]
MV4!I:!.ND9Z]2<#V]^,?7_L![/&>B^]R Z#(SS3)Y,3:*+6]MFT9;2"ELL.W
MD.F<%1<I5?I6K&VY%4#C0I0FMMOM#NR4LLR:CHNT>S$=\UPE+(-[062>IE3\
MNH&$[R>68STF/+#U1ID$>SK>TC4L0'W9W@M]9]>4F*602<8S(F UL6;.=>AX
M1E"4^,I@+P^NB>G*DO/OYN9#/+&ZID600*0,@NJ_'<PA20Q)M^-'!;7J.HWP
M\/J1'A:=UYU94@ESGOS#8K696%<6B6%%\T0]\/U[J#K4-[R()[+X)?NJ;-<B
M42X53RNQ;D'*LO*?_JP&XD#@]$X(W$K@OE;@50+OM8)>)>@]%_1/"/J5H/_:
M&@:58%",?3E8Q4C[5-'I6/ ]$::TIIF+PJY"K0>8969F+930N4SKU'06_<B9
M9,9E2=Z1A9ZY<9X X2L22,6T=1"3D#)!OM(D!VDR9E*"DJ20"IU-LYC<,KID
MB>;H(CH_3W7ZQ3T5D*D-*!;1Y"VY\$%1IB_>D2\+GUR\>4O>$):1SQN>2PV1
M8UOI+IF&V5'5_*!LOGNB^0-RQW4-D@19#'%3;^NAJ,?#?1R/&[<5.,O7'>)Z
ME\3MNMZ1]LS;Y7=4=(CGG)3[[?*_:=8A3O>D//@?>:[E7BGO'9&'KY=[+6/I
MU7/+*WC>"=Y-+G6*K&9*.<G(MUN=1CXH2.6_1YIX4R)[QY$FSE[++8U@8NE
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
MN$%Q@H@ \.\KC-GA14S0_*=C]A]02P,$%     @ ,8'^6-\S+T+,!0  O"0
M !D   !X;"]W;W)K<VAE971S+W-H965T-C4N>&ULM5IM;]LV$/XKA%<,+=#%
M(O5F98F!));4#"L6).OV(=@'QJ)MH7IQ23II]NM'2HID48SFI,R7Q*+OGM,]
M1]_IL7GR4-*O;$,(!]_SK&"GDPWGV^/IE"TW),?LJ-R20KRS*FF.N;BDZRG;
M4H*3RBG/ILBRO&F.TV(R/ZG6KNC\I-SQ+"W(%05LE^>8/IZ3K'PXG<#)T\)U
MNMYPN3"=GVSQFMP0_F5[1<75M$5)TIP4+"T+0,GJ='(&CV-D2X?*XJ^4/+"]
MUT"F<E>67^7%97(ZL>0=D8PLN83 XM\]N2!9)I'$?7QK0"=M3.FX__H)/:J2
M%\G<848NRNSO-.&;T\EL A*RPKN,7Y</GTB3D"OQEF7&JK_@H;&U)F"Y8[S,
M&V=Q!WE:U/_Q]X:(/0=H/^. &@>D.KC/.-B-@ZTZ.,\X.(V#<V@$MW%P#XW@
M-0[>H0Y^X^!7Q:K9K4JSP!S/3VCY *BT%FCR157?REM4)"WD5KSA5+R;"C\^
M/]\QL<(8N"%KL<,XN"SJ_2WWR2_@BHI-3_DCP$4"PF^[=%L9G25)*BW81[ @
MXB.P3&L':766EY2G_W8+EXEP25<IOLL(.&.,< ;>+PC':?9!A/ARLP#OWWT
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
MPS ,0'_%T)XP!] AB#-E\18$^0%6H@_8$@6*19V_K]JE<9 +&7D]/!+<'FE
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
M              "  0    !D;V-0<F]P<R]A<' N>&UL4$L! A0#%     @
M,8'^6 M6_1;N    *P(  !$              ( !KP   &1O8U!R;W!S+V-O
M<F4N>&UL4$L! A0#%     @ ,8'^6)E<G",0!@  G"<  !,
M ( !S $  'AL+W1H96UE+W1H96UE,2YX;6Q02P$"% ,4    "  Q@?Y86NTB
M=.@%  #1'P  &               @($-"   >&PO=V]R:W-H965T<R]S:&5E
M=#$N>&UL4$L! A0#%     @ ,8'^6#X>YU3!!P  3R$  !@
M ("!*PX  'AL+W=O<FMS:&5E=',O<VAE970R+GAM;%!+ 0(4 Q0    ( #&!
M_E@O>4C#( ,  /\)   8              " @2(6  !X;"]W;W)K<VAE971S
M+W-H965T,RYX;6Q02P$"% ,4    "  Q@?Y8("O@;XP&  #\'0  &
M        @(%X&0  >&PO=V]R:W-H965T<R]S:&5E=#0N>&UL4$L! A0#%
M  @ ,8'^6 >'@,\[ P  <0L  !@              ("!.B   'AL+W=O<FMS
M:&5E=',O<VAE970U+GAM;%!+ 0(4 Q0    ( #&!_EBK:'T!6 T   6%   8
M              " @:LC  !X;"]W;W)K<VAE971S+W-H965T-BYX;6Q02P$"
M% ,4    "  Q@?Y8PO!+D,<(  #:)@  &               @($Y,0  >&PO
M=V]R:W-H965T<R]S:&5E=#<N>&UL4$L! A0#%     @ ,8'^6-MXORJ" @
MNP<  !@              ("!-CH  'AL+W=O<FMS:&5E=',O<VAE970X+GAM
M;%!+ 0(4 Q0    ( #&!_E@0PNQ 1 (  (H&   8              " @>X\
M  !X;"]W;W)K<VAE971S+W-H965T.2YX;6Q02P$"% ,4    "  Q@?Y8;T^6
M*5<%  "/#0  &0              @(%H/P  >&PO=V]R:W-H965T<R]S:&5E
M=#$P+GAM;%!+ 0(4 Q0    ( #&!_E@!%;Q8I0,  &0)   9
M  " @?9$  !X;"]W;W)K<VAE971S+W-H965T,3$N>&UL4$L! A0#%     @
M,8'^6$@?VL'W P  6@D  !D              ("!TD@  'AL+W=O<FMS:&5E
M=',O<VAE970Q,BYX;6Q02P$"% ,4    "  Q@?Y8H[_?DX$#  "R"   &0
M            @($ 30  >&PO=V]R:W-H965T<R]S:&5E=#$S+GAM;%!+ 0(4
M Q0    ( #&!_EAN3.SP$@,  . &   9              " @;A0  !X;"]W
M;W)K<VAE971S+W-H965T,30N>&UL4$L! A0#%     @ ,8'^6.S3N!F3!P
ME1,  !D              ("! 50  'AL+W=O<FMS:&5E=',O<VAE970Q-2YX
M;6Q02P$"% ,4    "  Q@?Y8U&5QB<D"   :!@  &0              @('+
M6P  >&PO=V]R:W-H965T<R]S:&5E=#$V+GAM;%!+ 0(4 Q0    ( #&!_EC;
MMG3I8PH  $,>   9              " @<M>  !X;"]W;W)K<VAE971S+W-H
M965T,3<N>&UL4$L! A0#%     @ ,8'^6&3D44@I!0  ;@X  !D
M     ("!96D  'AL+W=O<FMS:&5E=',O<VAE970Q."YX;6Q02P$"% ,4
M"  Q@?Y87W P7N0#   F#   &0              @('%;@  >&PO=V]R:W-H
M965T<R]S:&5E=#$Y+GAM;%!+ 0(4 Q0    ( #&!_E@VN.)]:P0  %,*   9
M              " @>!R  !X;"]W;W)K<VAE971S+W-H965T,C N>&UL4$L!
M A0#%     @ ,8'^6(WNR\-B!P  <1(  !D              ("!@G<  'AL
M+W=O<FMS:&5E=',O<VAE970R,2YX;6Q02P$"% ,4    "  Q@?Y83^;_><$#
M  "@"   &0              @($;?P  >&PO=V]R:W-H965T<R]S:&5E=#(R
M+GAM;%!+ 0(4 Q0    ( #&!_EAL5S%@B0@  #P4   9              "
M@1.#  !X;"]W;W)K<VAE971S+W-H965T,C,N>&UL4$L! A0#%     @ ,8'^
M6-8KE MM#   XR,  !D              ("!TXL  'AL+W=O<FMS:&5E=',O
M<VAE970R-"YX;6Q02P$"% ,4    "  Q@?Y8[4_BACH)  "V&@  &0
M        @(%WF   >&PO=V]R:W-H965T<R]S:&5E=#(U+GAM;%!+ 0(4 Q0
M   ( #&!_EAG<[G4. 0  #H)   9              " @>BA  !X;"]W;W)K
M<VAE971S+W-H965T,C8N>&UL4$L! A0#%     @ ,8'^6/+&*L^Y P  W@D
M !D              ("!5Z8  'AL+W=O<FMS:&5E=',O<VAE970R-RYX;6Q0
M2P$"% ,4    "  Q@?Y8JWD%GH\"  #'!0  &0              @(%'J@
M>&PO=V]R:W-H965T<R]S:&5E=#(X+GAM;%!+ 0(4 Q0    ( #&!_EAA"/"W
MI (  !T&   9              " @0VM  !X;"]W;W)K<VAE971S+W-H965T
M,CDN>&UL4$L! A0#%     @ ,8'^6%&WXH6W @  U 4  !D
M ("!Z*\  'AL+W=O<FMS:&5E=',O<VAE970S,"YX;6Q02P$"% ,4    "  Q
M@?Y87#UO\$,$  !X"P  &0              @('6L@  >&PO=V]R:W-H965T
M<R]S:&5E=#,Q+GAM;%!+ 0(4 Q0    ( #&!_E@)NI^WT0(  !H&   9
M          " @5"W  !X;"]W;W)K<VAE971S+W-H965T,S(N>&UL4$L! A0#
M%     @ ,8'^6-.*?$1Q P  :P<  !D              ("!6+H  'AL+W=O
M<FMS:&5E=',O<VAE970S,RYX;6Q02P$"% ,4    "  Q@?Y8#BIA\ED#  #S
M"   &0              @($ O@  >&PO=V]R:W-H965T<R]S:&5E=#,T+GAM
M;%!+ 0(4 Q0    ( #&!_E@: 1A?%0,  +H&   9              " @9#!
M  !X;"]W;W)K<VAE971S+W-H965T,S4N>&UL4$L! A0#%     @ ,8'^6,$3
MF,Y.!0  CA   !D              ("!W,0  'AL+W=O<FMS:&5E=',O<VAE
M970S-BYX;6Q02P$"% ,4    "  Q@?Y82-.!2K\&  "B%0  &0
M    @(%AR@  >&PO=V]R:W-H965T<R]S:&5E=#,W+GAM;%!+ 0(4 Q0    (
M #&!_EC6B'SSM0(  !8(   9              " @5?1  !X;"]W;W)K<VAE
M971S+W-H965T,S@N>&UL4$L! A0#%     @ ,8'^6.=92%UE P  7PT  !D
M             ("!0]0  'AL+W=O<FMS:&5E=',O<VAE970S.2YX;6Q02P$"
M% ,4    "  Q@?Y8)\,M"L "  "(!P  &0              @('?UP  >&PO
M=V]R:W-H965T<R]S:&5E=#0P+GAM;%!+ 0(4 Q0    ( #&!_EAAZ;P[7P,
M &,,   9              " @=;:  !X;"]W;W)K<VAE971S+W-H965T-#$N
M>&UL4$L! A0#%     @ ,8'^6 F?M%2W @  @@<  !D              ("!
M;-X  'AL+W=O<FMS:&5E=',O<VAE970T,BYX;6Q02P$"% ,4    "  Q@?Y8
M?+%%M:H"  #O!P  &0              @(%:X0  >&PO=V]R:W-H965T<R]S
M:&5E=#0S+GAM;%!+ 0(4 Q0    ( #&!_E@=.1FQ/ ,  +,*   9
M      " @3OD  !X;"]W;W)K<VAE971S+W-H965T-#0N>&UL4$L! A0#%
M  @ ,8'^6&,X+5_D P  V1(  !D              ("!KN<  'AL+W=O<FMS
M:&5E=',O<VAE970T-2YX;6Q02P$"% ,4    "  Q@?Y8>$&?0'\#   *#0
M&0              @(')ZP  >&PO=V]R:W-H965T<R]S:&5E=#0V+GAM;%!+
M 0(4 Q0    ( #&!_EA$U6S<90,  /T.   9              " @7_O  !X
M;"]W;W)K<VAE971S+W-H965T-#<N>&UL4$L! A0#%     @ ,8'^6'F7BT7I
M @  3P@  !D              ("!&_,  'AL+W=O<FMS:&5E=',O<VAE970T
M."YX;6Q02P$"% ,4    "  Q@?Y8$ PF90\$  #M$P  &0
M@($[]@  >&PO=V]R:W-H965T<R]S:&5E=#0Y+GAM;%!+ 0(4 Q0    ( #&!
M_ECN&*A5+0,  &(+   9              " @8'Z  !X;"]W;W)K<VAE971S
M+W-H965T-3 N>&UL4$L! A0#%     @ ,8'^6(6<Z#Z3#@  U,8  !D
M         ("!Y?T  'AL+W=O<FMS:&5E=',O<VAE970U,2YX;6Q02P$"% ,4
M    "  Q@?Y8P$%?G*L#  #2#   &0              @(&O# $ >&PO=V]R
M:W-H965T<R]S:&5E=#4R+GAM;%!+ 0(4 Q0    ( #&!_EB(%2JUD ,  ($/
M   9              " @9$0 0!X;"]W;W)K<VAE971S+W-H965T-3,N>&UL
M4$L! A0#%     @ ,8'^6)JGDC==!   JQ4  !D              ("!6!0!
M 'AL+W=O<FMS:&5E=',O<VAE970U-"YX;6Q02P$"% ,4    "  Q@?Y8APFE
MHJD#  "?#P  &0              @('L& $ >&PO=V]R:W-H965T<R]S:&5E
M=#4U+GAM;%!+ 0(4 Q0    ( #&!_EAF-1U.) ,   H,   9
M  " @<P< 0!X;"]W;W)K<VAE971S+W-H965T-38N>&UL4$L! A0#%     @
M,8'^6%K*DTEP!0  MB8  !D              ("!)R ! 'AL+W=O<FMS:&5E
M=',O<VAE970U-RYX;6Q02P$"% ,4    "  Q@?Y8U/FXPRD#  "8"0  &0
M            @('.)0$ >&PO=V]R:W-H965T<R]S:&5E=#4X+GAM;%!+ 0(4
M Q0    ( #&!_EC;D)]<^ ,  .(,   9              " @2XI 0!X;"]W
M;W)K<VAE971S+W-H965T-3DN>&UL4$L! A0#%     @ ,8'^6-T!2+@F$
M&OH  !D              ("!72T! 'AL+W=O<FMS:&5E=',O<VAE970V,"YX
M;6Q02P$"% ,4    "  Q@?Y8_V;NO[X'  #H3@  &0              @(&Z
M/0$ >&PO=V]R:W-H965T<R]S:&5E=#8Q+GAM;%!+ 0(4 Q0    ( #&!_EC5
M8&PT+P0  *\9   9              " @:]% 0!X;"]W;W)K<VAE971S+W-H
M965T-C(N>&UL4$L! A0#%     @ ,8'^6-G]^?&1 P  ;PP  !D
M     ("!%4H! 'AL+W=O<FMS:&5E=',O<VAE970V,RYX;6Q02P$"% ,4
M"  Q@?Y87+%?*^@$  #U&   &0              @('=30$ >&PO=V]R:W-H
M965T<R]S:&5E=#8T+GAM;%!+ 0(4 Q0    ( #&!_EC?,R]"S 4  +PD   9
M              " @?Q2 0!X;"]W;W)K<VAE971S+W-H965T-C4N>&UL4$L!
M A0#%     @ ,8'^6.<5'&(  P  $ T  !D              ("!_U@! 'AL
M+W=O<FMS:&5E=',O<VAE970V-BYX;6Q02P$"% ,4    "  Q@?Y8Z,<3GT\&
M   #,P  &0              @($V7 $ >&PO=V]R:W-H965T<R]S:&5E=#8W
M+GAM;%!+ 0(4 Q0    ( #&!_E@X".Y=' (  -$$   9              "
M@;QB 0!X;"]W;W)K<VAE971S+W-H965T-C@N>&UL4$L! A0#%     @ ,8'^
M6(9$DP)- P  (A0   T              ( !#V4! 'AL+W-T>6QE<RYX;6Q0
M2P$"% ,4    "  Q@?Y8EXJ[',     3 @  "P              @ &': $
M7W)E;',O+G)E;'-02P$"% ,4    "  Q@?Y8>X-SBS %   6+0  #P
M        @ %P:0$ >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @ ,8'^6!;=
M:Q0F @  8R@  !H              ( !S6X! 'AL+U]R96QS+W=O<FMB;V]K
M+GAM;"YR96QS4$L! A0#%     @ ,8'^6.'L7A'T 0  HB<  !,
M     ( !*W$! %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&     $P 3 #+%
&4',!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<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>79
<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>81
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>221</ContextCount>
  <ElementCount>293</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>52</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>6</UnitCount>
  <MyReports>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>100000 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>100050 - Statement - Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>100070 - Statement - Condensed Consolidated Statements of Income (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited</Role>
      <ShortName>Condensed Consolidated Statements of Income (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>100080 - Statement - Condensed Consolidated Statements of Comprehensive Income (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited</Role>
      <ShortName>Condensed Consolidated Statements of Comprehensive Income (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>100090 - Statement - Condensed Consolidated Statements of Shareholders' Equity (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited</Role>
      <ShortName>Condensed Consolidated Statements of Shareholders' Equity (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>100100 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>995455 - Disclosure - Basis of Reporting for Consolidated Financial Statements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBasisOfReportingForConsolidatedFinancialStatements</Role>
      <ShortName>Basis of Reporting for Consolidated Financial Statements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>995465 - Disclosure - New Financial Accounting Pronouncements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncements</Role>
      <ShortName>New Financial Accounting Pronouncements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>995475 - Disclosure - Accounts Receivable</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivable</Role>
      <ShortName>Accounts Receivable</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>995485 - Disclosure - Contract Assets and Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilities</Role>
      <ShortName>Contract Assets and Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>995495 - Disclosure - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventories</Role>
      <ShortName>Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>995505 - Disclosure - Goodwill and Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssets</Role>
      <ShortName>Goodwill and Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>995515 - Disclosure - Accrued Expenses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpenses3</Role>
      <ShortName>Accrued Expenses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>995525 - Disclosure - Senior Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebt</Role>
      <ShortName>Senior Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>995535 - Disclosure - Earnings per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShare</Role>
      <ShortName>Earnings per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>995545 - Disclosure - Share-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensation</Role>
      <ShortName>Share-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>995555 - Disclosure - Pension and Employee Benefit Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlans</Role>
      <ShortName>Pension and Employee Benefit Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>995565 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>995575 - Disclosure - Financial Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstruments</Role>
      <ShortName>Financial Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>995585 - Disclosure - Commitments and Contingencies - Legal Matters</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMatters</Role>
      <ShortName>Commitments and Contingencies - Legal Matters</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>995595 - Disclosure - Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitions8</Role>
      <ShortName>Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>995605 - Disclosure - Business Segment Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformation</Role>
      <ShortName>Business Segment Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>995615 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>995625 - Disclosure - New Financial Accounting Pronouncements (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncementsPolicies</Role>
      <ShortName>New Financial Accounting Pronouncements (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncements</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>995635 - Disclosure - Accounts Receivable (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableTables</Role>
      <ShortName>Accounts Receivable (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivable</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995645 - Disclosure - Contract Assets and Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesTables</Role>
      <ShortName>Contract Assets and Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilities</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995655 - Disclosure - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesTables</Role>
      <ShortName>Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventories</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>995665 - Disclosure - Goodwill and Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsTables</Role>
      <ShortName>Goodwill and Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssets</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>995675 - Disclosure - Accrued Expenses (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesTables</Role>
      <ShortName>Accrued Expenses (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpenses3</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>995685 - Disclosure - Senior Debt (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtTables</Role>
      <ShortName>Senior Debt (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebt</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>995695 - Disclosure - Earnings per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareTables</Role>
      <ShortName>Earnings per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShare</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>995705 - Disclosure - Pension and Employee Benefit Plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansTables</Role>
      <ShortName>Pension and Employee Benefit Plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlans</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>995715 - Disclosure - Acquisitions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables</Role>
      <ShortName>Acquisitions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitions8</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>995725 - Disclosure - Business Segment Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables</Role>
      <ShortName>Business Segment Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformation</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>995735 - Disclosure - Accounts Receivable - Summary of Accounts Receivable (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail</Role>
      <ShortName>Accounts Receivable - Summary of Accounts Receivable (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>38</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>995745 - Disclosure - Accounts Receivable - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail</Role>
      <ShortName>Accounts Receivable - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>995755 - Disclosure - Contract Assets and Liabilities - Summary of Contract Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails</Role>
      <ShortName>Contract Assets and Liabilities - Summary of Contract Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>995765 - Disclosure - Contract Assets and Liabilities (Additional Information) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails</Role>
      <ShortName>Contract Assets and Liabilities (Additional Information) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesTables</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>995775 - Disclosure - Inventories - Summary of Inventories (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail</Role>
      <ShortName>Inventories - Summary of Inventories (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>995785 - Disclosure - Inventories - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesAdditionalInformationDetail</Role>
      <ShortName>Inventories - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>995795 - Disclosure - Goodwill and Intangible Assets - Goodwill / Tradename (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail</Role>
      <ShortName>Goodwill and Intangible Assets - Goodwill / Tradename (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>995805 - Disclosure - Goodwill and Intangible Assets - Intangible Assets - Finite Life (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail</Role>
      <ShortName>Goodwill and Intangible Assets - Intangible Assets - Finite Life (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>995815 - Disclosure - Goodwill and Intangible Assets - Finite Lived Intangible Assets Amortization Expense (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail</Role>
      <ShortName>Goodwill and Intangible Assets - Finite Lived Intangible Assets Amortization Expense (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>995825 - Disclosure - Goodwill and Intangible Assets - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail</Role>
      <ShortName>Goodwill and Intangible Assets - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>995835 - Disclosure - Accrued Expenses - Summary of Accrued Expenses (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail</Role>
      <ShortName>Accrued Expenses - Summary of Accrued Expenses (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>995845 - Disclosure - Senior Debt - Summary of Debt (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail</Role>
      <ShortName>Senior Debt - Summary of Debt (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>995855 - Disclosure - Senior Debt - Summary of Debt (Parenthetical) (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail</Role>
      <ShortName>Senior Debt - Summary of Debt (Parenthetical) (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>995865 - Disclosure - Senior Debt - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail</Role>
      <ShortName>Senior Debt - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>995875 - Disclosure - Earnings per Share - Number of Shares Outstanding for Calculation of Earnings Per Share (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail</Role>
      <ShortName>Earnings per Share - Number of Shares Outstanding for Calculation of Earnings Per Share (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>995885 - Disclosure - Earnings per Share - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail</Role>
      <ShortName>Earnings per Share - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>995895 - Disclosure - Share-Based Compensation - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail</Role>
      <ShortName>Share-Based Compensation - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>995905 - Disclosure - Pension and Employee Benefit Plans - Components of Pension and Employee Benefit Expenses (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail</Role>
      <ShortName>Pension and Employee Benefit Plans - Components of Pension and Employee Benefit Expenses (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>995915 - Disclosure - Pension and Employee Benefit Plans - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail</Role>
      <ShortName>Pension and Employee Benefit Plans - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>995925 - Disclosure - Income Taxes - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail</Role>
      <ShortName>Income Taxes - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>995935 - Disclosure - Financial Instruments - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail</Role>
      <ShortName>Financial Instruments - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>995945 - Disclosure - Commitments and Contingencies - Legal Matters - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail</Role>
      <ShortName>Commitments and Contingencies - Legal Matters - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>995955 - Disclosure - Acquisitions - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail</Role>
      <ShortName>Acquisitions - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>995965 - Disclosure - Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail</Role>
      <ShortName>Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>995975 - Disclosure - Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Parenthetical) (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail</Role>
      <ShortName>Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Parenthetical) (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>995985 - Disclosure - Acquisitions - Schedule of Unaudited Pro Forma Financial Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails</Role>
      <ShortName>Acquisitions - Schedule of Unaudited Pro Forma Financial Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>995995 - Disclosure - Business Segment Information - Net Sales and Income from Operation by Business Segment (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail</Role>
      <ShortName>Business Segment Information - Net Sales and Income from Operation by Business Segment (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>996005 - Disclosure - Business Segment Information - Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail</Role>
      <ShortName>Business Segment Information - Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>996015 - Disclosure - Business Segment Information - Goodwill (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail</Role>
      <ShortName>Business Segment Information - Goodwill (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>996025 - Disclosure - Business Segment Information - Intra-Segment and Inter-Segment Revenues (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail</Role>
      <ShortName>Business Segment Information - Intra-Segment and Inter-Segment Revenues (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="ceco-20240630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>996035 - Disclosure - Subsequent Events (Additional Information) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails</Role>
      <ShortName>Subsequent Events (Additional Information) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEvents</ParentRole>
      <Position>68</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-Q" isDefinitelyFs="true" isUsgaap="true" original="ceco-20240630.htm">ceco-20240630.htm</File>
    <File>ceco-20240630.xsd</File>
  </InputFiles>
  <SupplementalFiles>
    <File>img58591874_0.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="848">http://fasb.org/us-gaap/2023</BaseTaxonomy>
    <BaseTaxonomy items="30">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
    <BaseTaxonomy items="4">http://xbrl.sec.gov/ecd/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>false</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>83
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "ceco-20240630.htm": {
   "nsprefix": "ceco",
   "nsuri": "http://www.cecoenviro.com/20240630",
   "dts": {
    "inline": {
     "local": [
      "ceco-20240630.htm"
     ]
    },
    "schema": {
     "local": [
      "ceco-20240630.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd",
      "http://www.xbrl.org/lrr/role/negated-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/2023/calculation-1.1.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/dei/2023/dei-2023.xsd",
      "https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd",
      "https://xbrl.sec.gov/ecd/2023/ecd-sub-2023.xsd"
     ]
    }
   },
   "keyStandard": 266,
   "keyCustom": 27,
   "axisStandard": 21,
   "axisCustom": 0,
   "memberStandard": 31,
   "memberCustom": 21,
   "hidden": {
    "total": 6,
    "http://xbrl.sec.gov/dei/2023": 4,
    "http://fasb.org/us-gaap/2023": 2
   },
   "contextCount": 221,
   "entityCount": 1,
   "segmentCount": 52,
   "elementCount": 599,
   "unitCount": 6,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2023": 848,
    "http://xbrl.sec.gov/dei/2023": 30,
    "http://xbrl.sec.gov/ecd/2023": 4
   },
   "report": {
    "R1": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation",
     "longName": "100000 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited",
     "longName": "100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited)",
     "shortName": "Condensed Consolidated Balance Sheets (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:RestrictedCashCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical",
     "longName": "100050 - Statement - Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical)",
     "shortName": "Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "unitRef": "U_UnitedStatesOfAmericaDollarsShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited",
     "longName": "100070 - Statement - Condensed Consolidated Statements of Income (Unaudited)",
     "shortName": "Condensed Consolidated Statements of Income (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited",
     "longName": "100080 - Statement - Condensed Consolidated Statements of Comprehensive Income (Unaudited)",
     "shortName": "Condensed Consolidated Statements of Comprehensive Income (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited",
     "longName": "100090 - Statement - Condensed Consolidated Statements of Shareholders' Equity (Unaudited)",
     "shortName": "Condensed Consolidated Statements of Shareholders' Equity (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "C_2451a01f-db86-4984-805d-aa5fa459e97f",
      "name": "us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6c1b1dc3-e0b0-4139-9496-f0133f3508cd",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited",
     "longName": "100100 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)",
     "shortName": "Condensed Consolidated Statements of Cash Flows (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ForeignCurrencyTransactionGainLossUnrealized",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R8": {
     "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure",
     "longName": "995410 - Disclosure - Pay vs Performance Disclosure",
     "shortName": "Pay vs Performance Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R9": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
     "longName": "995445 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBasisOfReportingForConsolidatedFinancialStatements",
     "longName": "995455 - Disclosure - Basis of Reporting for Consolidated Financial Statements",
     "shortName": "Basis of Reporting for Consolidated Financial Statements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncements",
     "longName": "995465 - Disclosure - New Financial Accounting Pronouncements",
     "shortName": "New Financial Accounting Pronouncements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivable",
     "longName": "995475 - Disclosure - Accounts Receivable",
     "shortName": "Accounts Receivable",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilities",
     "longName": "995485 - Disclosure - Contract Assets and Liabilities",
     "shortName": "Contract Assets and Liabilities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventories",
     "longName": "995495 - Disclosure - Inventories",
     "shortName": "Inventories",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssets",
     "longName": "995505 - Disclosure - Goodwill and Intangible Assets",
     "shortName": "Goodwill and Intangible Assets",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpenses3",
     "longName": "995515 - Disclosure - Accrued Expenses",
     "shortName": "Accrued Expenses",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebt",
     "longName": "995525 - Disclosure - Senior Debt",
     "shortName": "Senior Debt",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShare",
     "longName": "995535 - Disclosure - Earnings per Share",
     "shortName": "Earnings per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensation",
     "longName": "995545 - Disclosure - Share-Based Compensation",
     "shortName": "Share-Based Compensation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlans",
     "longName": "995555 - Disclosure - Pension and Employee Benefit Plans",
     "shortName": "Pension and Employee Benefit Plans",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes",
     "longName": "995565 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstruments",
     "longName": "995575 - Disclosure - Financial Instruments",
     "shortName": "Financial Instruments",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMatters",
     "longName": "995585 - Disclosure - Commitments and Contingencies - Legal Matters",
     "shortName": "Commitments and Contingencies - Legal Matters",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitions8",
     "longName": "995595 - Disclosure - Acquisitions",
     "shortName": "Acquisitions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformation",
     "longName": "995605 - Disclosure - Business Segment Information",
     "shortName": "Business Segment Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEvents",
     "longName": "995615 - Disclosure - Subsequent Events",
     "shortName": "Subsequent Events",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncementsPolicies",
     "longName": "995625 - Disclosure - New Financial Accounting Pronouncements (Policies)",
     "shortName": "New Financial Accounting Pronouncements (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "27",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableTables",
     "longName": "995635 - Disclosure - Accounts Receivable (Tables)",
     "shortName": "Accounts Receivable (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "28",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesTables",
     "longName": "995645 - Disclosure - Contract Assets and Liabilities (Tables)",
     "shortName": "Contract Assets and Liabilities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "29",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesTables",
     "longName": "995655 - Disclosure - Inventories (Tables)",
     "shortName": "Inventories (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "30",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsTables",
     "longName": "995665 - Disclosure - Goodwill and Intangible Assets (Tables)",
     "shortName": "Goodwill and Intangible Assets (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "31",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesTables",
     "longName": "995675 - Disclosure - Accrued Expenses (Tables)",
     "shortName": "Accrued Expenses (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "32",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtTables",
     "longName": "995685 - Disclosure - Senior Debt (Tables)",
     "shortName": "Senior Debt (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "33",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfDebtTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfDebtTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareTables",
     "longName": "995695 - Disclosure - Earnings per Share (Tables)",
     "shortName": "Earnings per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "34",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansTables",
     "longName": "995705 - Disclosure - Pension and Employee Benefit Plans (Tables)",
     "shortName": "Pension and Employee Benefit Plans (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "35",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfNetBenefitCostsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfNetBenefitCostsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables",
     "longName": "995715 - Disclosure - Acquisitions (Tables)",
     "shortName": "Acquisitions (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "36",
     "firstAnchor": {
      "contextRef": "C_9f15121a-558b-4efd-9402-5a11935625fd",
      "name": "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_9f15121a-558b-4efd-9402-5a11935625fd",
      "name": "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables",
     "longName": "995725 - Disclosure - Business Segment Information (Tables)",
     "shortName": "Business Segment Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "37",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail",
     "longName": "995735 - Disclosure - Accounts Receivable - Summary of Accounts Receivable (Detail)",
     "shortName": "Accounts Receivable - Summary of Accounts Receivable (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "38",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "div",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "div",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail",
     "longName": "995745 - Disclosure - Accounts Receivable - Additional Information (Detail)",
     "shortName": "Accounts Receivable - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "39",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "ceco:ContractReceivableRetainage1",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_f6d351cf-8d35-4859-8d61-9c3008e38bf1",
      "name": "ceco:ContractReceivableRetainage1",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails",
     "longName": "995755 - Disclosure - Contract Assets and Liabilities - Summary of Contract Assets and Liabilities (Details)",
     "shortName": "Contract Assets and Liabilities - Summary of Contract Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "40",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:ContractWithCustomerAssetNetCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R41": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails",
     "longName": "995765 - Disclosure - Contract Assets and Liabilities (Additional Information) (Details)",
     "shortName": "Contract Assets and Liabilities (Additional Information) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:ContractWithCustomerAssetNetCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "ceco:ContractLiabilitiesRecognizedAsRevenue",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "us-gaap:ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail",
     "longName": "995775 - Disclosure - Inventories - Summary of Inventories (Detail)",
     "shortName": "Inventories - Summary of Inventories (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:InventoryRawMaterials",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "div",
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:InventoryRawMaterials",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "div",
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesAdditionalInformationDetail",
     "longName": "995785 - Disclosure - Inventories - Additional Information (Detail)",
     "shortName": "Inventories - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:InventoryWriteDown",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:InventoryWriteDown",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:InventoryDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail",
     "longName": "995795 - Disclosure - Goodwill and Intangible Assets - Goodwill / Tradename (Detail)",
     "shortName": "Goodwill and Intangible Assets - Goodwill / Tradename (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "C_f6d351cf-8d35-4859-8d61-9c3008e38bf1",
      "name": "us-gaap:Goodwill",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:GoodwillPurchaseAccountingAdjustments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail",
     "longName": "995805 - Disclosure - Goodwill and Intangible Assets - Intangible Assets - Finite Life (Detail)",
     "shortName": "Goodwill and Intangible Assets - Intangible Assets - Finite Life (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail",
     "longName": "995815 - Disclosure - Goodwill and Intangible Assets - Finite Lived Intangible Assets Amortization Expense (Detail)",
     "shortName": "Goodwill and Intangible Assets - Finite Lived Intangible Assets Amortization Expense (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "C_f6d351cf-8d35-4859-8d61-9c3008e38bf1",
      "name": "us-gaap:FiniteLivedIntangibleAssetsNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_2451a01f-db86-4984-805d-aa5fa459e97f",
      "name": "us-gaap:FiniteLivedIntangibleAssetsNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail",
     "longName": "995825 - Disclosure - Goodwill and Intangible Assets - Additional Information (Detail)",
     "shortName": "Goodwill and Intangible Assets - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R48": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail",
     "longName": "995835 - Disclosure - Accrued Expenses - Summary of Accrued Expenses (Detail)",
     "shortName": "Accrued Expenses - Summary of Accrued Expenses (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "div",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "div",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail",
     "longName": "995845 - Disclosure - Senior Debt - Summary of Debt (Detail)",
     "shortName": "Senior Debt - Summary of Debt (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:LongTermDebt",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "div",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:LongTermDebt",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "div",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail",
     "longName": "995855 - Disclosure - Senior Debt - Summary of Debt (Parenthetical) (Detail)",
     "shortName": "Senior Debt - Summary of Debt (Parenthetical) (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "C_7436e234-3623-461d-b988-e60995d6a771",
      "name": "us-gaap:DebtInstrumentFrequencyOfPeriodicPayment",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "div",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7436e234-3623-461d-b988-e60995d6a771",
      "name": "us-gaap:DebtInstrumentFrequencyOfPeriodicPayment",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "div",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail",
     "longName": "995865 - Disclosure - Senior Debt - Additional Information (Detail)",
     "shortName": "Senior Debt - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_f6d351cf-8d35-4859-8d61-9c3008e38bf1",
      "name": "us-gaap:DebtInstrumentInterestRateEffectivePercentage",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "4",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail",
     "longName": "995875 - Disclosure - Earnings per Share - Number of Shares Outstanding for Calculation of Earnings Per Share (Detail)",
     "shortName": "Earnings per Share - Number of Shares Outstanding for Calculation of Earnings Per Share (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail",
     "longName": "995885 - Disclosure - Earnings per Share - Additional Information (Detail)",
     "shortName": "Earnings per Share - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-6",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-6",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R54": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail",
     "longName": "995895 - Disclosure - Share-Based Compensation - Additional Information (Detail)",
     "shortName": "Share-Based Compensation - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R55": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail",
     "longName": "995905 - Disclosure - Pension and Employee Benefit Plans - Components of Pension and Employee Benefit Expenses (Detail)",
     "shortName": "Pension and Employee Benefit Plans - Components of Pension and Employee Benefit Expenses (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "C_88bff4ba-8317-4837-938d-f9fc37b50aca",
      "name": "us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNetBenefitCostsTableTextBlock",
       "div",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_88bff4ba-8317-4837-938d-f9fc37b50aca",
      "name": "us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNetBenefitCostsTableTextBlock",
       "div",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail",
     "longName": "995915 - Disclosure - Pension and Employee Benefit Plans - Additional Information (Detail)",
     "shortName": "Pension and Employee Benefit Plans - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:DefinedBenefitPlanContributionsByEmployer",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "us-gaap:DefinedBenefitPlanContributionsByEmployer",
       "span",
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:DefinedBenefitPlanContributionsByEmployer",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "us-gaap:DefinedBenefitPlanContributionsByEmployer",
       "span",
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail",
     "longName": "995925 - Disclosure - Income Taxes - Additional Information (Detail)",
     "shortName": "Income Taxes - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:LiabilityForUncertainTaxPositionsNoncurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_f6d351cf-8d35-4859-8d61-9c3008e38bf1",
      "name": "us-gaap:LiabilityForUncertainTaxPositionsNoncurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "us-gaap:LiabilityForUncertainTaxPositionsNoncurrent",
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R58": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail",
     "longName": "995935 - Disclosure - Financial Instruments - Additional Information (Detail)",
     "shortName": "Financial Instruments - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "ceco:CashHeldOutsideDomesticTerritory",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FinancialInstrumentsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R59": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail",
     "longName": "995945 - Disclosure - Commitments and Contingencies - Legal Matters - Additional Information (Detail)",
     "shortName": "Commitments and Contingencies - Legal Matters - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:LitigationSettlementAmountAwardedFromOtherParty",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:LitigationSettlementAmountAwardedFromOtherParty",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R60": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
     "longName": "995955 - Disclosure - Acquisitions - Additional Information (Detail)",
     "shortName": "Acquisitions - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "C_7b0ccbd8-cde1-4fa0-92b8-fbefef7f7aea",
      "name": "ceco:EarnOutFairValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7b0ccbd8-cde1-4fa0-92b8-fbefef7f7aea",
      "name": "ceco:EarnOutFairValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
     "longName": "995965 - Disclosure - Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Detail)",
     "shortName": "Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_4589bd88-a00e-4db0-96ae-ae6be744a07c",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R62": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
     "longName": "995975 - Disclosure - Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Parenthetical) (Detail)",
     "shortName": "Acquisitions - Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed (Parenthetical) (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "C_b3462824-949c-41a4-841e-4bb62a638246",
      "name": "us-gaap:IncreaseDecreaseInAccountsReceivable",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_0c5f4bc0-2224-4e45-bf01-f8c41f9559f3",
      "name": "us-gaap:IncreaseDecreaseInAccountsReceivable",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R63": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails",
     "longName": "995985 - Disclosure - Acquisitions - Schedule of Unaudited Pro Forma Financial Information (Details)",
     "shortName": "Acquisitions - Schedule of Unaudited Pro Forma Financial Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "C_3a0b3e75-3056-44a8-8753-0879f494583f",
      "name": "us-gaap:GainLossOnSalesOfLoansNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "div",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_3a0b3e75-3056-44a8-8753-0879f494583f",
      "name": "us-gaap:InterestIncomeExpenseNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "div",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R64": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
     "longName": "995995 - Disclosure - Business Segment Information - Net Sales and Income from Operation by Business Segment (Detail)",
     "shortName": "Business Segment Information - Net Sales and Income from Operation by Business Segment (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_90362dbf-1569-4da3-96cf-507dc082275b",
      "name": "us-gaap:OperatingIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R65": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail",
     "longName": "996005 - Disclosure - Business Segment Information - Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets (Detail)",
     "shortName": "Business Segment Information - Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:SegmentExpenditureAdditionToLongLivedAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:SegmentExpenditureAdditionToLongLivedAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    },
    "R66": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail",
     "longName": "996015 - Disclosure - Business Segment Information - Goodwill (Detail)",
     "shortName": "Business Segment Information - Goodwill (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "C_7f19d873-0ea9-4575-9270-315df0f6b819",
      "name": "us-gaap:Goodwill",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_4903b239-8211-4916-a44e-128a6e7b7e35",
      "name": "us-gaap:Goodwill",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R67": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail",
     "longName": "996025 - Disclosure - Business Segment Information - Intra-Segment and Inter-Segment Revenues (Detail)",
     "shortName": "Business Segment Information - Intra-Segment and Inter-Segment Revenues (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "C_aa55f74d-96c2-401e-82d8-106e147d0edb",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_431f62b4-8e96-4f2e-bb8b-938899c3d8c7",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ceco:IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock",
       "div",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "unique": true
     }
    },
    "R68": {
     "role": "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails",
     "longName": "996035 - Disclosure - Subsequent Events (Additional Information) (Details)",
     "shortName": "Subsequent Events (Additional Information) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "C_48e9a337-b814-47fb-aae0-b5faa898eb44",
      "name": "us-gaap:PaymentsForPreviousAcquisition",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-6",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_48e9a337-b814-47fb-aae0-b5faa898eb44",
      "name": "us-gaap:PaymentsForPreviousAcquisition",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-6",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20240630.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingChangesAndErrorCorrectionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingChangesAndErrorCorrectionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Changes and Error Corrections [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsNotesAndLoansReceivableLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsNotesAndLoansReceivableLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts, Notes, Loans and Financing Receivable [Line Items]",
        "label": "Accounts, Notes, Loans and Financing Receivable [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_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivable Type",
        "label": "Receivable Type [Axis]",
        "documentation": "Information by type of receivable."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpenses3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "terseLabel": "Accrued Expenses",
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period."
       }
      }
     },
     "auth_ref": [
      "r25"
     ]
    },
    "us-gaap_AccountsPayableAndOtherAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableAndOtherAccruedLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Payable and Other Accrued Liabilities",
        "terseLabel": "Accounts payable and accrued expenses",
        "documentation": "Amount of liabilities incurred and payable to vendors for goods and services received, and accrued liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r705"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Accounts Payable, Current, Total",
        "label": "Accounts Payable, Current",
        "terseLabel": "Accounts payable",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r803"
     ]
    },
    "us-gaap_AccountsPayableTradeCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableTradeCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trade accounts payable, including amounts due to subcontractors",
        "label": "Accounts Payable, Trade, Current",
        "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": [
      "r22",
      "r24"
     ]
    },
    "us-gaap_AccountsReceivableGrossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableGrossCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, before Allowance for Credit Loss, Current",
        "terseLabel": "Accounts receivable",
        "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current."
       }
      }
     },
     "auth_ref": [
      "r177",
      "r275",
      "r276",
      "r769"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable, net allowances of $6,582 and $6,460",
        "verboseLabel": "Accounts receivable, net allowances",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "totalLabel": "Total accounts receivable, net",
        "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": [
      "r275",
      "r276"
     ]
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedIncomeTaxesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income taxes payable",
        "label": "Accrued Income Taxes, Current",
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r143"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accrued expenses",
        "label": "Accrued Liabilities, Current",
        "terseLabel": "Accrued expenses",
        "totalLabel": "Total accrued expenses",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesCurrentAndNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Accrued Liabilities, Total",
        "label": "Accrued Liabilities",
        "terseLabel": "Accrued expenses",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities."
       }
      }
     },
     "auth_ref": [
      "r89"
     ]
    },
    "us-gaap_AccruedLiabilitiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Liabilities [Member]",
        "documentation": "This item represents obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated other comprehensive loss",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "totalLabel": "Accumulated Other Comprehensive Income (Loss), Net of Tax, Total",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r40",
      "r108",
      "r178",
      "r658",
      "r687",
      "r690"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Loss [Member]",
        "label": "AOCI Attributable to Parent [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": [
      "r5",
      "r16",
      "r40",
      "r555",
      "r558",
      "r588",
      "r683",
      "r684",
      "r911",
      "r912",
      "r913",
      "r922",
      "r923",
      "r924"
     ]
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Additional402vDisclosureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional 402(v) Disclosure [Text Block]",
        "terseLabel": "Additional 402(v) Disclosure"
       }
      }
     },
     "auth_ref": [
      "r853"
     ]
    },
    "ceco_AdditionalConsideration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "AdditionalConsideration",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "additional consideration Earn Out",
        "label": "additional consideration"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapitalCommonStock",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capital in excess of par value",
        "label": "Additional Paid in Capital, Common Stock",
        "periodStartLabel": "Additional Paid in Capital, Common Stock, Beginning Balance",
        "periodEndLabel": "Additional Paid in Capital, Common Stock, Ending Balance",
        "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capital in Excess of Par Value [Member]",
        "label": "Additional 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": [
      "r517",
      "r518",
      "r519",
      "r700",
      "r922",
      "r923",
      "r924",
      "r969",
      "r996"
     ]
    },
    "ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional Payments of Contingent Consideration Related to Acquisitions Financing Activities",
        "label": "Additional Payments of Contingent Consideration Related to Acquisitions Financing Activities",
        "terseLabel": "Earnout payments",
        "negatedLabel": "Earnout payments"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Earnout payments",
        "terseLabel": "Earnout payments",
        "documentation": "Additional payments of contingent consideration related to acquisitions operating activities.",
        "label": "Additional Payments of Contingent Consideration Related to Acquisitions Operating Activities"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Compensation Amount",
        "terseLabel": "Adjustment to Compensation, Amount"
       }
      }
     },
     "auth_ref": [
      "r859"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToCompAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Compensation [Axis]",
        "terseLabel": "Adjustment to Compensation:"
       }
      }
     },
     "auth_ref": [
      "r859"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToNonPeoNeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]",
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote"
       }
      }
     },
     "auth_ref": [
      "r859"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToPeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]",
        "terseLabel": "Adjustment To PEO Compensation, Footnote"
       }
      }
     },
     "auth_ref": [
      "r859"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustments to reconcile net income to net cash provided by (used in) operating activities:",
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Erroneous Compensation Amount",
        "terseLabel": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r824",
      "r835",
      "r845",
      "r870"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AggtErrCompNotYetDeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]",
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined"
       }
      }
     },
     "auth_ref": [
      "r827",
      "r838",
      "r848",
      "r873"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllAdjToCompMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Adjustments to Compensation [Member]",
        "terseLabel": "All Adjustments to Compensation"
       }
      }
     },
     "auth_ref": [
      "r859"
     ]
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllExecutiveCategoriesMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Executive Categories [Member]",
        "terseLabel": "All Executive Categories"
       }
      }
     },
     "auth_ref": [
      "r866"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllIndividualsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Individuals [Member]",
        "terseLabel": "All Individuals"
       }
      }
     },
     "auth_ref": [
      "r831",
      "r839",
      "r849",
      "r866",
      "r874",
      "r878",
      "r886"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllTradingArrangementsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Trading Arrangements [Member]",
        "terseLabel": "All Trading Arrangements"
       }
      }
     },
     "auth_ref": [
      "r884"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recognized share-based compensation awards",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r513",
      "r520"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable, net allowances",
        "label": "Accounts Receivable, Allowance for Credit Loss, Current",
        "negatedLabel": "Provision for credit losses",
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r179",
      "r277",
      "r316"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_AmortizationAndEarnoutExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "AmortizationAndEarnoutExpenses",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amortization and earnout expenses",
        "label": "Amortization and earnout expenses",
        "terseLabel": "Amortization and earnout expenses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfDebtDiscountPremium": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AmortizationOfDebtDiscountPremium",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt discount amortization",
        "label": "Amortization of Debt Discount (Premium)",
        "documentation": "Amount of noncash expense included in interest expense to amortize debt discount and premium associated with the related debt instruments. Excludes amortization of financing costs. Alternate captions include noncash interest expense."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r85",
      "r116",
      "r390"
     ]
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Amortization expense",
        "verboseLabel": "Amortization expense of finite life intangible assets",
        "label": "Amortization of Intangible Assets",
        "totalLabel": "Amortization of Intangible Assets, Total",
        "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": [
      "r10",
      "r55",
      "r58"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Anti-dilutive options and restricted stock units outstanding",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r236"
     ]
    },
    "us-gaap_ArrangementsAndNonarrangementTransactionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ArrangementsAndNonarrangementTransactionsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative Arrangement and Arrangement Other than Collaborative",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]",
        "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r546"
     ]
    },
    "us-gaap_AsbestosIssueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AsbestosIssueMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asbestos Issue [Member]",
        "documentation": "Individual or consolidated class action claims alleging that asbestos caused cancer or other illnesses to persons exposed to it."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_AsbestosLitigationExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "AsbestosLitigationExpenses",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asbestos litigation expenses",
        "label": "Asbestos Litigation Expenses",
        "documentation": "Asbestos Litigation Expenses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Assets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Identifiable assets",
        "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": [
      "r141",
      "r174",
      "r201",
      "r245",
      "r260",
      "r266",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r548",
      "r552",
      "r570",
      "r653",
      "r725",
      "r803",
      "r815",
      "r957",
      "r958",
      "r979"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "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",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "terseLabel": "Assets Current",
        "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": [
      "r168",
      "r181",
      "r201",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r548",
      "r552",
      "r570",
      "r803",
      "r957",
      "r958",
      "r979"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current assets:",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsFairValueAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsFairValueAdjustment",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value",
        "label": "Assets, Fair Value Adjustment",
        "documentation": "Amount of addition (reduction) to the amount at which an asset could be incurred (settled) in a current transaction between willing parties."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets, Noncurrent",
        "label": "Assets, Noncurrent",
        "totalLabel": "Assets, Noncurrent, Total",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold or consumed after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r201",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r548",
      "r552",
      "r570",
      "r957",
      "r958",
      "r979"
     ]
    },
    "ceco_AverageCostPerSettledClaim": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "AverageCostPerSettledClaim",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Average cost per settled claim excluding legal fees",
        "label": "Average Cost Per Settled Claim",
        "documentation": "The weighted average cost per settled claim based on the number of claims settled and the amount paid in aggregate for asbestos related claims."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Exercise Price",
        "terseLabel": "Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r881"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardGrantDateFairValue",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Grant Date Fair Value",
        "terseLabel": "Fair Value as of Grant Date"
       }
      }
     },
     "auth_ref": [
      "r882"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]",
        "terseLabel": "Award Timing Disclosures"
       }
      }
     },
     "auth_ref": [
      "r877"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgHowMnpiCnsdrdTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing, How MNPI Considered [Text Block]",
        "terseLabel": "Award Timing, How MNPI Considered"
       }
      }
     },
     "auth_ref": [
      "r877"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Method [Text Block]",
        "terseLabel": "Award Timing Method"
       }
      }
     },
     "auth_ref": [
      "r877"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMnpiCnsdrdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing MNPI Considered [Flag]",
        "terseLabel": "Award Timing MNPI Considered"
       }
      }
     },
     "auth_ref": [
      "r877"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMnpiDiscTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing MNPI Disclosure [Text Block]",
        "terseLabel": "Award Timing MNPI Disclosure"
       }
      }
     },
     "auth_ref": [
      "r877"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgPredtrmndFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Predetermined [Flag]",
        "terseLabel": "Award Timing Predetermined"
       }
      }
     },
     "auth_ref": [
      "r877"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Axis]",
        "terseLabel": "Award Type",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Underlying Securities Amount",
        "terseLabel": "Underlying Securities"
       }
      }
     },
     "auth_ref": [
      "r880"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r879"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures [Table]",
        "terseLabel": "Awards Close in Time to MNPI Disclosures"
       }
      }
     },
     "auth_ref": [
      "r878"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]",
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table"
       }
      }
     },
     "auth_ref": [
      "r878"
     ]
    },
    "ceco_BankGuaranteesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "BankGuaranteesMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bank Guarantees [Member]",
        "label": "Bank Guarantees [Member]",
        "documentation": "Bank guarantees."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BaseRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BaseRateMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Base Rate [Member]",
        "terseLabel": "Base Rate [Member]",
        "documentation": "Minimum rate investor will accept."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_BorrowingsOnRevolvingLineOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "BorrowingsOnRevolvingLineOfCredit",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowings on revolving credit lines",
        "label": "Borrowings On Revolving Line Of Credit",
        "documentation": "Borrowings on revolving line of credit."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition, Acquiree",
        "label": "Business Acquisition, Acquiree [Domain]",
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree."
       }
      }
     },
     "auth_ref": [
      "r542",
      "r792",
      "r795"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition",
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r74",
      "r542",
      "r792",
      "r795"
     ]
    },
    "us-gaap_BusinessAcquisitionContingentConsiderationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionContingentConsiderationLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition Contingent Consideration [Line Items]",
        "label": "Business Acquisition, Contingent Consideration [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_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition [Line Items]",
        "label": "Business Acquisition [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": [
      "r542"
     ]
    },
    "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionPercentageOfVotingInterestsAcquired",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition of equity",
        "label": "Business Acquisition, Percentage of Voting Interests Acquired",
        "documentation": "Percentage of voting equity interests acquired at the acquisition date in the business combination."
       }
      }
     },
     "auth_ref": [
      "r73"
     ]
    },
    "us-gaap_BusinessAcquisitionProFormaInformationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionProFormaInformationTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Unaudited Pro Forma Financial Information",
        "label": "Business Acquisition, Pro Forma Information [Table Text Block]",
        "documentation": "Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate."
       }
      }
     },
     "auth_ref": [
      "r894",
      "r895"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value adjustment to earnout liabilities",
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability",
        "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement."
       }
      }
     },
     "auth_ref": [
      "r545",
      "r915"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration",
        "label": "Business Combination, Contingent Consideration, Liability",
        "totalLabel": "Business Combination, Contingent Consideration, Liability, Total",
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r79",
      "r544"
     ]
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitions8"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisitions and Joint Ventures",
        "label": "Business Combination Disclosure [Text Block]",
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable)."
       }
      }
     },
     "auth_ref": [
      "r136",
      "r543"
     ]
    },
    "us-gaap_BusinessCombinationIntegrationRelatedCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationIntegrationRelatedCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition and integration expenses",
        "label": "Business Combination, Integration Related Costs",
        "documentation": "Costs incurred to effect a business combination which have been expensed during the period. Such costs could include business integration costs, systems integration and conversion costs, and severance and other employee-related costs."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets acquired",
        "terseLabel": "Total assets acquired",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets",
        "documentation": "Amount of assets acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, Current assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. 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."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets",
        "totalLabel": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Total",
        "documentation": "Amount of assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Current liabilities assumed",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Other",
        "documentation": "Amount of other liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred tax liability",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired intangible assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Indefinite-Lived Intangible Assets",
        "documentation": "Amount of assets, excluding financial assets and goodwill, that lack physical substance, having a projected indefinite period of benefit, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible - finite life",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill",
        "totalLabel": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill, Total",
        "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and equipment",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment",
        "totalLabel": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment, Total",
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r75",
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net assets acquired",
        "terseLabel": "Net assets acquired",
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combinations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash and cash equivalents",
        "terseLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "totalLabel": "Cash and Cash Equivalents, at Carrying Value, Total",
        "periodStartLabel": "Cash and Cash Equivalents, at Carrying Value, Beginning Balance",
        "periodEndLabel": "Cash and Cash Equivalents, at Carrying Value, Ending Balance",
        "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": [
      "r45",
      "r170",
      "r767"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Cash, cash equivalents and restricted cash at beginning of period",
        "periodEndLabel": "Cash, cash equivalents and restricted cash at end of period",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations",
        "totalLabel": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations, Total",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, 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": [
      "r45",
      "r120",
      "r199"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net (decrease) increase in cash, cash equivalents and restricted cash",
        "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": [
      "r4",
      "r120"
     ]
    },
    "ceco_CashHeldOutsideDomesticTerritory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "CashHeldOutsideDomesticTerritory",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash held outside United States, principally in Netherlands, United Kingdom, China, and Canada",
        "label": "Cash Held Outside Domestic Territory",
        "documentation": "Cash held outside domestic territory."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_CertainTradeNamesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "CertainTradeNamesMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Certain Tradenames [Member]",
        "label": "Certain Trade Names [Member]",
        "documentation": "Certain trade names."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ChangedPeerGroupFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changed Peer Group, Footnote [Text Block]",
        "terseLabel": "Changed Peer Group, Footnote"
       }
      }
     },
     "auth_ref": [
      "r857"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Selected Measure Amount",
        "terseLabel": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r858"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CoSelectedMeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Selected Measure Name",
        "terseLabel": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r858"
     ]
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and contingencies (See Note 14)",
        "label": "Commitments and Contingencies",
        "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": [
      "r35",
      "r91",
      "r655",
      "r712"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMatters"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "terseLabel": "Commitments and Contingencies - Legal Matters",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r128",
      "r347",
      "r348",
      "r763",
      "r950"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock [Member]",
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r805",
      "r806",
      "r807",
      "r809",
      "r810",
      "r811",
      "r812",
      "r922",
      "r923",
      "r969",
      "r992",
      "r996"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, par value",
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r99"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares authorized",
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r99",
      "r713"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares issued",
        "label": "Common Stock, Shares, Issued",
        "totalLabel": "Common Stock, Shares, Issued, Total",
        "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": [
      "r99"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock, shares outstanding",
        "label": "Common Stock, Shares, Outstanding",
        "periodStartLabel": "Common Stock, Shares, Outstanding, Beginning Balance",
        "periodEndLabel": "Common Stock, Shares, Outstanding, Ending Balance",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r99",
      "r713",
      "r731",
      "r996",
      "r997"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, $.01 par value; 100,000,000 shares authorized, 34,923,701 and 34,835,293 shares issued and outstanding at June 30, 2024 and December 31, 2023, respectively",
        "label": "Common Stock, Value, Issued",
        "totalLabel": "Common Stock, Value, Issued, Total",
        "periodStartLabel": "Common Stock, Value, Issued, Beginning Balance",
        "periodEndLabel": "Common Stock, Value, Issued, Ending Balance",
        "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": [
      "r99",
      "r657",
      "r803"
     ]
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure"
       }
      }
     },
     "auth_ref": [
      "r863"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsNetIncomeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Net Income [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Net Income"
       }
      }
     },
     "auth_ref": [
      "r862"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsOtherMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Other Measure"
       }
      }
     },
     "auth_ref": [
      "r864"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return"
       }
      }
     },
     "auth_ref": [
      "r861"
     ]
    },
    "ceco_CompanyReceivedWorkingCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "CompanyReceivedWorkingCapital",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Received Working Capital",
        "documentation": "Company Received Working Capital"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_CompassWaterSolutionsIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "CompassWaterSolutionsIncMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Compass Water Solutions, Inc [Member]",
        "label": "Compass Water Solutions, Inc [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement Benefits [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited"
     ],
     "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": [
      "r84",
      "r138",
      "r183",
      "r185",
      "r191",
      "r647",
      "r668"
     ]
    },
    "srt_ConsolidatedEntitiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ConsolidatedEntitiesAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidated Entities",
        "label": "Consolidated Entities [Axis]"
       }
      }
     },
     "auth_ref": [
      "r205",
      "r548",
      "r549",
      "r552",
      "r553",
      "r593",
      "r764",
      "r956",
      "r959",
      "r960"
     ]
    },
    "srt_ConsolidatedEntitiesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ConsolidatedEntitiesDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidated Entities",
        "label": "Consolidated Entities [Domain]"
       }
      }
     },
     "auth_ref": [
      "r205",
      "r548",
      "r549",
      "r552",
      "r553",
      "r593",
      "r764",
      "r956",
      "r959",
      "r960"
     ]
    },
    "srt_ConsolidationItemsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ConsolidationItemsAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidation Items",
        "label": "Consolidation Items [Axis]"
       }
      }
     },
     "auth_ref": [
      "r205",
      "r247",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r264",
      "r268",
      "r355",
      "r356",
      "r357",
      "r358",
      "r360",
      "r361",
      "r363",
      "r365",
      "r366",
      "r957",
      "r958"
     ]
    },
    "srt_ConsolidationItemsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ConsolidationItemsDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidation Items",
        "label": "Consolidation Items [Domain]"
       }
      }
     },
     "auth_ref": [
      "r205",
      "r247",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r264",
      "r268",
      "r355",
      "r356",
      "r357",
      "r358",
      "r360",
      "r361",
      "r363",
      "r365",
      "r366",
      "r957",
      "r958"
     ]
    },
    "ceco_ContractLiabilitiesRecognizedAsRevenue": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ContractLiabilitiesRecognizedAsRevenue",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract Liabilities Recognized As Revenue",
        "label": "Contract Liabilities Recognized As Revenue"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_ContractLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ContractLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract Liability Current",
        "documentation": "Contract liability current.",
        "terseLabel": "Contract liability"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_ContractReceivableRetainage1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ContractReceivableRetainage1",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amount billed but not received under retainage provisions in contracts",
        "label": "Contract Receivable Retainage1",
        "documentation": "Contract receivable retainage1."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Contract Assets and Liabilities",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability."
       }
      }
     },
     "auth_ref": [
      "r963"
     ]
    },
    "ceco_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Costs and estimated earnings in excess of billings on uncompleted contracts",
        "label": "Contract With Customer Asset Increase Decrease In Cost In Excess Of Billing On Uncompleted Contract",
        "documentation": "Contract with customer asset, increase decrease in cost in excess of billing on uncompleted contract."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetNetCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Costs and estimated earnings in excess of billings on uncompleted contracts",
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current",
        "totalLabel": "Contract with Customer, Asset, after Allowance for Credit Loss, Current, Total",
        "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current."
       }
      }
     },
     "auth_ref": [
      "r401",
      "r403",
      "r406"
     ]
    },
    "us-gaap_ContractWithCustomerAssetNetCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetNetCurrentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesSummaryOfContractAssetsAndLiabilitiesDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Billings in excess of costs and estimated earnings on uncompleted contracts",
        "label": "Contract with Customer, Liability, Current",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r401",
      "r402",
      "r406"
     ]
    },
    "ceco_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Billings in excess of costs and estimated earnings on uncompleted contracts",
        "label": "Contract With Customer Liability Increase Decrease In Billing In Excess Of Cost Of Earnings",
        "documentation": "Contract with customer, liability increase decrease in billing in excess of cost of earnings."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CorporateAndOtherMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CorporateAndOtherMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Corporate and Other [Member]",
        "documentation": "Component of an entity that provides financial and operational oversight and administrative support for other segments and other segments not separately reported due to size or nature of business activities. Excludes intersegment elimination and reconciling items."
       }
      }
     },
     "auth_ref": [
      "r927"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of sales",
        "label": "Cost of Goods and Services Sold",
        "totalLabel": "Cost of Goods and Services Sold, Total",
        "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": [
      "r114",
      "r628"
     ]
    },
    "srt_CounterpartyNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CounterpartyNameAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Counterparty Name",
        "label": "Counterparty Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r203",
      "r204",
      "r372",
      "r398",
      "r592",
      "r771",
      "r773"
     ]
    },
    "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": []
    },
    "ceco_CreditAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "CreditAgreementMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Agreement [Member]",
        "label": "Credit Agreement [Member]",
        "documentation": "Credit agreement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility",
        "label": "Credit Facility [Axis]",
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility",
        "label": "Credit Facility [Domain]",
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_CreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "CreditFacilityMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility [Member]",
        "label": "Credit Facility [Member]",
        "documentation": "Credit facility."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current Fiscal Year End Date",
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_CustomerListsAndTradeNameMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "CustomerListsAndTradeNameMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Lists and Tradename [Member]",
        "label": "Customer Lists And Trade Name [Member]",
        "documentation": "Customer lists and trade name."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerListsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CustomerListsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Lists [Member]",
        "label": "Customer Lists [Member]",
        "documentation": "Information about customers such as their name and contact information; it may also be an extensive database that includes other information about the customers such as their order history and demographic information."
       }
      }
     },
     "auth_ref": [
      "r78"
     ]
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebt"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Senior Debt",
        "label": "Debt Disclosure [Text Block]",
        "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": [
      "r129",
      "r200",
      "r368",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r384",
      "r391",
      "r392",
      "r394"
     ]
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument",
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r95",
      "r96",
      "r142",
      "r144",
      "r205",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r375",
      "r380",
      "r381",
      "r382",
      "r383",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r583",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r918"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, basis spread on variable rate",
        "label": "Debt Instrument, Basis Spread on Variable Rate",
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentFairValue",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value of debt issued",
        "label": "Debt Instrument, Fair Value Disclosure",
        "totalLabel": "Debt Instrument, Fair Value Disclosure, Total",
        "documentation": "Fair value portion of debt instrument payable, including, but not limited to, notes payable and loans payable."
       }
      }
     },
     "auth_ref": [
      "r382",
      "r569",
      "r783",
      "r784"
     ]
    },
    "us-gaap_DebtInstrumentFrequencyOfPeriodicPayment": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentFrequencyOfPeriodicPayment",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Frequency of periodic payment",
        "label": "Debt Instrument, Frequency of Periodic Payment",
        "documentation": "Description of the frequency of periodic payments (monthly, quarterly, annual)."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r93"
     ]
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentInterestRateEffectivePercentage",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Interest Rate, Effective Percentage",
        "label": "Debt Instrument, Interest Rate, Effective Percentage",
        "documentation": "Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r86",
      "r396",
      "r583"
     ]
    },
    "us-gaap_DebtInstrumentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument [Line Items]",
        "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": [
      "r205",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r375",
      "r380",
      "r381",
      "r382",
      "r383",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r393",
      "r583",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r918"
     ]
    },
    "us-gaap_DebtInstrumentMaturityDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentMaturityDate",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term loans, year of maturity",
        "label": "Debt Instrument, Maturity Date",
        "documentation": "Date when the debt instrument is scheduled to be fully repaid, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r161",
      "r782",
      "r971"
     ]
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Name",
        "label": "Debt Instrument, Name [Domain]",
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r205",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r375",
      "r380",
      "r381",
      "r382",
      "r383",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r583",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r918"
     ]
    },
    "us-gaap_DebtInstrumentRedemptionPeriodAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentRedemptionPeriodAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Redemption, Period",
        "label": "Debt Instrument, Redemption, Period [Axis]",
        "documentation": "Information about timing of debt redemption features under terms of the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "us-gaap_DebtInstrumentRedemptionPeriodDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentRedemptionPeriodDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Redemption, Period",
        "label": "Debt Instrument, Redemption, Period [Domain]",
        "documentation": "Period as defined under terms of the debt agreement for debt redemption features."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "us-gaap_DebtInstrumentRedemptionPeriodOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentRedemptionPeriodOneMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Redemption, Period One [Member]",
        "terseLabel": "Debt Instrument, Redemption, Through September 2025 [Member]",
        "documentation": "Period one representing most current period of debt redemption features under terms of the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "us-gaap_DebtInstrumentRedemptionPeriodThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentRedemptionPeriodThreeMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Redemption, Thereafter [Member]",
        "label": "Debt Instrument, Redemption, Period Three [Member]",
        "documentation": "Period three representing third most current period of debt redemption features under terms of the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "us-gaap_DebtInstrumentRedemptionPeriodTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentRedemptionPeriodTwoMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Redemption, Through June 2023 [Member]",
        "label": "Debt Instrument, Redemption, Period Two [Member]",
        "documentation": "Period two representing second most current period of debt redemption features under terms of the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r19"
     ]
    },
    "us-gaap_DebtInstrumentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument [Table]",
        "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": [
      "r33",
      "r59",
      "r60",
      "r85",
      "r86",
      "r88",
      "r92",
      "r130",
      "r131",
      "r205",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r375",
      "r380",
      "r381",
      "r382",
      "r383",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r393",
      "r583",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r918"
     ]
    },
    "us-gaap_DebtInstrumentUnamortizedDiscount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentUnamortizedDiscount",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Unamortized debt discount",
        "label": "Debt Instrument, Unamortized Discount",
        "totalLabel": "Debt Instrument, Unamortized Discount, Total",
        "documentation": "Amount, after accumulated amortization, of debt discount."
       }
      }
     },
     "auth_ref": [
      "r85",
      "r88",
      "r962"
     ]
    },
    "us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentUnusedBorrowingCapacityAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unused credit availability under credit facility",
        "label": "Debt Instrument, Unused Borrowing Capacity, Amount",
        "documentation": "Amount of unused borrowing capacity under the long-term financing arrangement that is available to the entity as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_DebtWeightedAverageInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtWeightedAverageInterestRate",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average interest rate on outstanding borrowings",
        "label": "Debt, Weighted Average Interest Rate",
        "documentation": "Weighted average interest rate of debt outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredCompensationCashBasedArrangementsLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredCompensationCashBasedArrangementsLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Compensation Cash-Based Arrangements, Liability, Current",
        "terseLabel": "Deferred cash consideration",
        "documentation": "Aggregate carrying value as of the balance sheet date of the liabilities for deferred compensation arrangements payable within one year (or the normal operating cycle, if longer). Represents currently earned compensation under cash arrangements (such as a profit-sharing plan, rabbi trust, and employee contract--excluding equity-based arrangements) that is not actually paid until a later date."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r63"
     ]
    },
    "ceco_DeferredConsiderationPaidForAcquisitions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "DeferredConsiderationPaidForAcquisitions",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred consideration paid for acquisitions",
        "label": "Deferred Consideration Paid For Acquisitions",
        "documentation": "Deferred Consideration Paid For Acquisitions"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredCostsAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredCostsAndOtherAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred charges and other assets",
        "label": "Deferred Costs and Other Assets",
        "documentation": "Amount of deferred cost assets and assets classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxAssetsNet",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred Income Tax Assets, Net, Total",
        "label": "Deferred Income Tax Assets, Net",
        "terseLabel": "Deferred income taxes",
        "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": [
      "r522",
      "r523"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred income taxes on undistributed earnings",
        "label": "Deferred Income Tax Expense (Benefit)",
        "totalLabel": "Deferred Income Tax Expense (Benefit), Total",
        "terseLabel": "Deferred income tax benefit",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r135",
      "r157",
      "r537",
      "r538",
      "r920"
     ]
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income tax liability, net",
        "label": "Deferred Income Tax Liabilities, Net",
        "totalLabel": "Deferred Income Tax Liabilities, Net, Total",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r522",
      "r523",
      "r654"
     ]
    },
    "us-gaap_DeferredRevenueRevenueRecognized1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredRevenueRevenueRecognized1",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "EIS revenue",
        "label": "Deferred Revenue, Revenue Recognized",
        "documentation": "Amount of revenue recognized that was previously reported as deferred or unearned revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsDeferredIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsDeferredIncome",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Deferred Income",
        "terseLabel": "Deferred income taxes",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income."
       }
      }
     },
     "auth_ref": [
      "r71",
      "r966"
     ]
    },
    "us-gaap_DefinedBenefitPensionPlanLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedBenefitPensionPlanLiabilitiesNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unfunded liability plans",
        "label": "Liability, Defined Benefit Pension Plan, Noncurrent",
        "documentation": "Amount of liability, recognized in statement of financial position, for defined benefit pension plan, classified as noncurrent. Excludes other postretirement benefit plan."
       }
      }
     },
     "auth_ref": [
      "r64",
      "r65",
      "r97",
      "r133"
     ]
    },
    "us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedBenefitPlanAmortizationOfGainsLosses",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Amortization of net actuarial loss",
        "label": "Defined Benefit Plan, Amortization of Gain (Loss)",
        "documentation": "Amount of gain (loss) recognized in net periodic benefit (cost) credit of defined benefit plan."
       }
      }
     },
     "auth_ref": [
      "r409",
      "r447",
      "r468",
      "r790",
      "r791"
     ]
    },
    "us-gaap_DefinedBenefitPlanContributionsByEmployer": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedBenefitPlanContributionsByEmployer",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Defined benefit plan contributions",
        "label": "Defined Benefit Plan, Plan Assets, Contributions by Employer",
        "documentation": "Amount of contribution received by defined benefit plan from employer which increases plan assets."
       }
      }
     },
     "auth_ref": [
      "r424",
      "r434",
      "r472",
      "r788",
      "r789",
      "r790",
      "r791"
     ]
    },
    "us-gaap_DefinedBenefitPlanDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedBenefitPlanDisclosureLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Defined Benefit Plan Disclosure [Line Items]",
        "label": "Defined Benefit Plan Disclosure [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_DefinedBenefitPlanExpectedReturnOnPlanAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedBenefitPlanExpectedReturnOnPlanAssets",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Expected return on plan assets",
        "label": "Defined Benefit Plan, Expected Return (Loss) on Plan Assets",
        "documentation": "Amount of expected return (loss) recognized in net periodic benefit (cost) credit, calculated based on expected long-term rate of return and market-related value of plan assets of defined benefit plan."
       }
      }
     },
     "auth_ref": [
      "r409",
      "r446",
      "r467",
      "r790",
      "r791"
     ]
    },
    "us-gaap_DefinedBenefitPlanInterestCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedBenefitPlanInterestCost",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest cost",
        "label": "Defined Benefit Plan, Interest Cost",
        "documentation": "Amount of cost recognized for passage of time related to defined benefit plan."
       }
      }
     },
     "auth_ref": [
      "r409",
      "r413",
      "r445",
      "r466",
      "r790",
      "r791"
     ]
    },
    "us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedBenefitPlanNetPeriodicBenefitCost",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net periodic benefit cost",
        "label": "Defined Benefit Plan, Net Periodic Benefit Cost (Credit)",
        "documentation": "Amount of net periodic benefit cost (credit) for defined benefit plan."
       }
      }
     },
     "auth_ref": [
      "r443",
      "r464",
      "r790",
      "r791"
     ]
    },
    "us-gaap_DepreciationDepletionAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DepreciationDepletionAndAmortization",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation and amortization",
        "label": "Depreciation, Depletion and Amortization",
        "totalLabel": "Depreciation, Depletion and Amortization, Total",
        "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r250"
     ]
    },
    "srt_DirectorMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "DirectorMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Employee Director [Member]",
        "label": "Director [Member]"
       }
      }
     },
     "auth_ref": [
      "r929",
      "r993"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-Based Compensation",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r482",
      "r486",
      "r514",
      "r515",
      "r516",
      "r799"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisclosureTextBlockAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureTextBlockAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Disclosure Text Block [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Document Fiscal Period Focus",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Year Focus",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Period End Date",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Quarterly Report",
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r819"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Transition Report",
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r852"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DomesticCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DomesticCountryMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Authorities [Member]",
        "label": "Domestic Tax Authority [Member]",
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_Ds21CoLtdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "Ds21CoLtdMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "DS21 Co., Ltd.",
        "label": "DS21 Co., Ltd. [Member]",
        "documentation": "DS21 Co., Ltd. [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_EarnOutFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "EarnOutFairValue",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Earn out, Fair value",
        "label": "Earn out, Fair value"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_EarnOutLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "EarnOutLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earn Out Liability",
        "label": "Earn Out Liability",
        "documentation": "Earn-out liability."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_EarningsAndDividendsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "EarningsAndDividendsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings And Dividends Per Share [Abstract]",
        "documentation": "Earnings and dividends per share."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]",
        "terseLabel": "Earnings per share:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basic",
        "label": "Earnings Per Share, Basic",
        "totalLabel": "Earnings Per Share, Basic, Total",
        "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": [
      "r192",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r226",
      "r228",
      "r233",
      "r234",
      "r235",
      "r239",
      "r564",
      "r565",
      "r648",
      "r669",
      "r774"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Diluted",
        "label": "Earnings Per Share, Diluted",
        "totalLabel": "Earnings Per Share, Diluted, Total",
        "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": [
      "r192",
      "r215",
      "r216",
      "r217",
      "r218",
      "r219",
      "r228",
      "r233",
      "r234",
      "r235",
      "r239",
      "r564",
      "r565",
      "r648",
      "r669",
      "r774"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings per Share",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r225",
      "r236",
      "r237",
      "r238"
     ]
    },
    "ceco_EarnoutPayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "EarnoutPayments",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnout Payments",
        "label": "Earnout Payments",
        "documentation": "Earnout payments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effect of exchange rate changes on cash, cash equivalents and restricted cash",
        "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations",
        "totalLabel": "Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents, Total",
        "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": [
      "r574"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effective income tax rate",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "totalLabel": "Effective Income Tax Rate Reconciliation, Percent, Total",
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r525"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Percent",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax settlement."
       }
      }
     },
     "auth_ref": [
      "r965",
      "r967"
     ]
    },
    "ceco_EffoxFlextorMadderMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "EffoxFlextorMadderMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effox Flextor Madder [Member]",
        "label": "Effox Flextor Madder [Member]",
        "terseLabel": "EFM JV [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation and related benefits",
        "label": "Employee-related Liabilities, Current",
        "totalLabel": "Employee-related Liabilities, Current, Total",
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Stock Option [Member]",
        "terseLabel": "Employee Stock Option",
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_EngineeredSystemsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "EngineeredSystemsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Engineered Systems Segment [Member]",
        "label": "Engineered Systems [Member]",
        "documentation": "Engineered systems member."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine2": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line Two",
        "label": "Entity Address, Address Line Two",
        "documentation": "Address Line 2 such as Street or Suite number"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "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": [
      "r817"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Common Stock, Shares Outstanding",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Current Reporting Status",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Emerging Growth Company",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r817"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Securities Act 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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Filer Category",
        "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": [
      "r817"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "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://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Interactive Data Current",
        "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": [
      "r891"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "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": [
      "r817"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Shell Company",
        "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": [
      "r817"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r817"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "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": [
      "r817"
     ]
    },
    "ceco_EnvironmentalIntegratedSolutionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "EnvironmentalIntegratedSolutionsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Environmental Integrated Solutions [Member]",
        "label": "Environmental Integrated Solutions [Member]",
        "documentation": "Environmental Integrated Solutions."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component",
        "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": [
      "r17",
      "r163",
      "r186",
      "r187",
      "r188",
      "r206",
      "r207",
      "r208",
      "r212",
      "r220",
      "r222",
      "r240",
      "r312",
      "r315",
      "r400",
      "r517",
      "r518",
      "r519",
      "r530",
      "r531",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r560",
      "r563",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r588",
      "r683",
      "r684",
      "r685",
      "r700",
      "r752"
     ]
    },
    "us-gaap_EquityFairValueAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityFairValueAdjustment",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity, Fair Value Adjustment",
        "negatedLabel": "Fair value of noncontrolling interest equity (see Note 14)",
        "terseLabel": "Fair value of noncontrolling interest equity",
        "documentation": "Amount of addition (reduction) to the amount at which an instrument classified in shareholders' equity could be incurred (settled) in a current transaction between willing parties."
       }
      }
     },
     "auth_ref": []
    },
    "srt_EquityMethodInvesteeNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "EquityMethodInvesteeNameDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investment, Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r308",
      "r309",
      "r310"
     ]
    },
    "us-gaap_EquityMethodInvestmentOwnershipPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityMethodInvestmentOwnershipPercentage",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percentage of equity method investment in joint venture",
        "label": "Equity Method Investment, Ownership Percentage",
        "documentation": "The percentage of ownership of common stock or equity participation in the investee accounted for under the equity method of accounting."
       }
      }
     },
     "auth_ref": [
      "r308"
     ]
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "EquityValuationAssumptionDifferenceFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]",
        "terseLabel": "Equity Valuation Assumption Difference, Footnote"
       }
      }
     },
     "auth_ref": [
      "r860"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ErrCompAnalysisTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Erroneous Compensation Analysis [Text Block]",
        "terseLabel": "Erroneous Compensation Analysis"
       }
      }
     },
     "auth_ref": [
      "r824",
      "r835",
      "r845",
      "r870"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ErrCompRecoveryTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Erroneously Awarded Compensation Recovery [Table]",
        "terseLabel": "Erroneously Awarded Compensation Recovery"
       }
      }
     },
     "auth_ref": [
      "r821",
      "r832",
      "r842",
      "r867"
     ]
    },
    "ceco_EuroDenominatedBankGuaranteeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "EuroDenominatedBankGuaranteeMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Euro-Denominated Bank Guarantee [Member]",
        "label": "Euro Denominated Bank Guarantee [Member]",
        "documentation": "Euro-denominated bank guarantee."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Executive Category [Axis]",
        "terseLabel": "Executive Category:"
       }
      }
     },
     "auth_ref": [
      "r866"
     ]
    },
    "ceco_ExecutiveTransitionExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ExecutiveTransitionExpenses",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Executive transition expenses.",
        "label": "Executive Transition Expenses",
        "terseLabel": "Executive transition expenses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_FairValueOfFinancialInstrumentsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "FairValueOfFinancialInstrumentsLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Of Financial Instruments [Line Items]",
        "label": "Fair Value Of Financial Instruments [Line Items]",
        "documentation": "Fair value of financial instruments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueOffBalanceSheetRisksDisclosureInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueOffBalanceSheetRisksDisclosureInformationLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract Assets and Liabilities [Line Items]",
        "label": "Fair Value, off-Balance-Sheet Risks, Disclosure 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": []
    },
    "ceco_FederalFundsRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "FederalFundsRateMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Funds Rate [Member]",
        "label": "Federal Funds Rate [Member]",
        "documentation": "Federal Funds Rate [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancialInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instrument [Axis]",
        "documentation": "Information by type of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r317",
      "r318",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r393",
      "r399",
      "r561",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r667",
      "r779",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r930",
      "r931",
      "r932",
      "r933"
     ]
    },
    "us-gaap_FinancialInstrumentsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentsDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstruments"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instruments",
        "label": "Financial Instruments Disclosure [Text Block]",
        "documentation": "The entire disclosure for financial instruments. This disclosure includes, but is not limited to, fair value measurements of short and long term marketable securities, international currencies forward contracts, and auction rate securities. Financial instruments may include hedging and non-hedging currency exchange instruments, derivatives, securitizations and securities available for sale at fair value. Also included are investment results, realized and unrealized gains and losses as well as impairments and risk management disclosures."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Intangible assets, Useful Life",
        "terseLabel": "Intangible assets, Useful Life",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Amortization",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r340"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense of finite life intangibles for 2025",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "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": [
      "r126"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense of finite life intangibles for 2024",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year",
        "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_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Finite Lived Intangible Assets Activities",
        "label": "Finite-Lived Intangible Assets Amortization Expense [Table Text Block]",
        "documentation": "Tabular disclosure of amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense of finite life intangibles for 2028",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "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": [
      "r126"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense of finite life intangibles for 2027",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "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": [
      "r126"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization expense of finite life intangibles for 2026",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "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": [
      "r126"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets by Major Class",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r338",
      "r339",
      "r340",
      "r341",
      "r629",
      "r633"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency adjustments",
        "label": "Finite-Lived Intangible Assets, Foreign Currency Translation Gain (Loss)",
        "negatedLabel": "Foreign currency adjustments",
        "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost",
        "label": "Finite-Lived Intangible Assets, Gross",
        "totalLabel": "Finite-Lived Intangible Assets, Gross, Total",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r125",
      "r633"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets [Line Items]",
        "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": [
      "r629"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name",
        "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": [
      "r56",
      "r57"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets \u2013 finite life, net",
        "periodStartLabel": "Intangible assets \u2013 finite life, net at beginning of period",
        "periodEndLabel": "Intangible assets \u2013 finite life, net at end of period",
        "label": "Finite-Lived Intangible Assets, Net",
        "totalLabel": "Finite-Lived Intangible Assets, Net, Total",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r125",
      "r629"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Purchase Accounting Adjustments",
        "terseLabel": "Acquisition",
        "documentation": "Amount of increase (decrease) to assets, excluding financial assets and goodwill, lacking physical substance with a finite life for purchase accounting adjustments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCurrencyTransactionGainLossUnrealized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyTransactionGainLossUnrealized",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Unrealized foreign currency gain (loss)",
        "terseLabel": "Fair value adjustment to earnout liabilities",
        "label": "Unrealized Gain (Loss), Foreign Currency Transaction, before Tax",
        "documentation": "Amount, before tax, of unrealized gain (loss) from foreign currency transaction."
       }
      }
     },
     "auth_ref": [
      "r122",
      "r733",
      "r813",
      "r973",
      "r974",
      "r995"
     ]
    },
    "ceco_ForeignCurrencyTranslationAdjustmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ForeignCurrencyTranslationAdjustmentMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign Currency Adjustments [Member]",
        "label": "Foreign Currency Translation Adjustment [Member]",
        "documentation": "Foreign currency translation adjustment."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r828",
      "r839",
      "r849",
      "r874"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Expense of Enforcement, Amount",
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r828",
      "r839",
      "r849",
      "r874"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r828",
      "r839",
      "r849",
      "r874"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]",
        "terseLabel": "Forgone Recovery, Explanation of Impracticability"
       }
      }
     },
     "auth_ref": [
      "r828",
      "r839",
      "r849",
      "r874"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r828",
      "r839",
      "r849",
      "r874"
     ]
    },
    "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSaleOfPropertyPlantEquipment",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Gain on sale of property and equipment",
        "label": "Gain (Loss) on Disposition of Property Plant Equipment",
        "totalLabel": "Gain (Loss) on Disposition of Property Plant Equipment, Total",
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_GainLossOnSalesOfLoansNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSalesOfLoansNet",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net sales",
        "label": "Gain (Loss) on Sales of Loans, Net",
        "totalLabel": "Gain (Loss) on Sales of Loans, Net, Total",
        "documentation": "The net gain (loss) resulting from a sale of loans, including adjustments to record loans classified as held-for-sale at the lower-of-cost-or-market and fair value adjustments to loan held for investment purposes."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r153"
     ]
    },
    "ceco_GeneralRubberLlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "GeneralRubberLlcMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "General rubber llc .",
        "label": "General Rubber LLC [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Goodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "periodStartLabel": "Goodwill, beginning balance",
        "periodEndLabel": "Goodwill, ending balance",
        "label": "Goodwill",
        "totalLabel": "Goodwill, Total",
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r171",
      "r328",
      "r646",
      "r781",
      "r803",
      "r937",
      "r944"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill and Intangible Assets",
        "label": "Goodwill and Intangible Assets Disclosure [Text Block]",
        "documentation": "The entire disclosure for goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r124"
     ]
    },
    "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillForeignCurrencyTranslationGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill, foreign currency translation",
        "label": "Goodwill, Foreign Currency Translation Gain (Loss)",
        "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r335"
     ]
    },
    "us-gaap_GoodwillPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillPurchaseAccountingAdjustments",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill, Purchase Accounting Adjustments",
        "terseLabel": "Goodwill, Acquisitions",
        "documentation": "Amount of increase (decrease) from adjustments after acquisition date under purchase accounting of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r943"
     ]
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GrossProfit",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "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": [
      "r113",
      "r201",
      "r245",
      "r259",
      "r265",
      "r268",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r570",
      "r776",
      "r957"
     ]
    },
    "ceco_HoldbackPayble": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "HoldbackPayble",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Holdback Payble",
        "label": "Holdback Payble",
        "terseLabel": "Holdback Payble"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tradename, Impairment charge",
        "label": "Impairment of Intangible Assets, Indefinite-Lived (Excluding Goodwill)",
        "documentation": "Amount of impairment loss resulting from write-down of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit to fair value."
       }
      }
     },
     "auth_ref": [
      "r916",
      "r947"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pre tax loss",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "totalLabel": "Income before income taxes",
        "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",
      "r111",
      "r149",
      "r245",
      "r259",
      "r265",
      "r268",
      "r649",
      "r663",
      "r776"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsPerBasicShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsPerBasicShare",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basic",
        "label": "Income (Loss) from Continuing Operations, Per Basic Share",
        "totalLabel": "Income (Loss) from Continuing Operations, Per Outstanding Share, Total",
        "documentation": "The amount of net income (loss) from continuing operations per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r147",
      "r150",
      "r192",
      "r211",
      "r215",
      "r216",
      "r217",
      "r218",
      "r228",
      "r233",
      "r234",
      "r565",
      "r648",
      "r988"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsPerDilutedShare",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Diluted",
        "label": "Income (Loss) from Continuing Operations, Per Diluted Share",
        "documentation": "The amount of net income (loss) derived from continuing operations during 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": [
      "r109",
      "r192",
      "r211",
      "r215",
      "r216",
      "r217",
      "r218",
      "r228",
      "r233",
      "r234",
      "r235",
      "r565",
      "r648",
      "r988"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority",
        "label": "Income Tax Authority [Axis]",
        "documentation": "Information by tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority",
        "label": "Income Tax Authority [Domain]",
        "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "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": [
      "r202",
      "r521",
      "r526",
      "r528",
      "r529",
      "r535",
      "r539",
      "r540",
      "r541",
      "r697"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Income tax expense",
        "terseLabel": "Income tax expense",
        "label": "Income Tax Expense (Benefit)",
        "totalLabel": "Income Tax Expense (Benefit), Total",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r156",
      "r160",
      "r221",
      "r222",
      "r253",
      "r524",
      "r536",
      "r670"
     ]
    },
    "ceco_IncomeTaxesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "IncomeTaxesLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes [Line Items]",
        "label": "Income Taxes [Line Items]",
        "documentation": "Income taxes."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income taxes",
        "label": "Income Taxes Paid, Net",
        "totalLabel": "Income Taxes Paid, Net, Total",
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes."
       }
      }
     },
     "auth_ref": [
      "r46"
     ]
    },
    "ceco_IncomeTaxesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "IncomeTaxesTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes [Table]",
        "label": "Income Taxes [Table]",
        "documentation": "Income Taxes [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Increase (Decrease) in Accounts Payable and Accrued Liabilities",
        "totalLabel": "Increase (Decrease) in Accounts Payable and Accrued Liabilities, Total",
        "documentation": "The increase (decrease) during the reporting period in the amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts receivable",
        "label": "Increase (Decrease) in Accounts Receivable",
        "terseLabel": "Accounts Receivable, Net Current Assets",
        "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": [
      "r9"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccruedIncomeTaxesPayable",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income taxes payable",
        "label": "Increase (Decrease) in Income Taxes Payable",
        "documentation": "The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses",
        "label": "Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities",
        "documentation": "Amount of increase (decrease) in accrued expenses, and obligations classified as other."
       }
      }
     },
     "auth_ref": [
      "r915"
     ]
    },
    "ceco_IncreaseDecreaseInDeferredChargesAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "IncreaseDecreaseInDeferredChargesAndOtherAssets",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deferred charges and other assets",
        "label": "Increase Decrease In Deferred Charges And Other Assets",
        "documentation": "Increase (decrease) in deferred charges and other assets."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventories",
        "label": "Increase (Decrease) in Inventories",
        "totalLabel": "Increase (Decrease) in Inventories, Total",
        "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": [
      "r9"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Operating Capital [Abstract]",
        "terseLabel": "Changes in operating assets and liabilities, net of acquisitions:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherOperatingLiabilities",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other liabilities",
        "label": "Increase (Decrease) in Other Operating Liabilities",
        "totalLabel": "Increase (Decrease) in Other Operating Liabilities, Total",
        "documentation": "Amount of increase (decrease) in operating liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid expense and other current assets",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "totalLabel": "Increase (Decrease) in Prepaid Expense and Other Assets, Total",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "ceco_IncreaseInEstimatedFairValueOfEarnout": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "IncreaseInEstimatedFairValueOfEarnout",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase in estimated fair value of earnout",
        "label": "Increase In Estimated Fair Value Of Earnout",
        "documentation": "Increase in estimated fair value of earnout."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock equivalents arising from stock options and restricted stock awards",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "totalLabel": "Incremental Common Shares Attributable to Share-based Payment Arrangements, Total",
        "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": [
      "r229",
      "r230",
      "r231",
      "r235",
      "r485"
     ]
    },
    "us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IndefiniteLivedIntangibleAssetsExcludingGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets \u2013 indefinite life",
        "periodStartLabel": "Tradename, beginning balance",
        "periodEndLabel": "Tradename, ending balance",
        "label": "Indefinite-Lived Intangible Assets (Excluding Goodwill)",
        "totalLabel": "Indefinite-lived Intangible Assets (Excluding Goodwill), Total",
        "documentation": "Amount of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit."
       }
      }
     },
     "auth_ref": [
      "r127"
     ]
    },
    "ceco_IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "IndefiniteLivedIntangibleAssetsExcludingGoodwillDuringPeriodTransfers",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tradename, transfers to finite life classification",
        "label": "Indefinite Lived Intangible Assets Excluding Goodwill During Period Transfers",
        "documentation": "Indefinite lived intangible assets excluding goodwill during period transfers."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IndefiniteLivedIntangibleAssetsExcludingGoodwillFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Finite-lived intangible asset, fair value",
        "label": "Indefinite-Lived Intangible Assets (Excluding Goodwill), Fair Value Disclosure",
        "documentation": "Fair value portion of assets, excluding financial assets and goodwill, that lack physical substance, having a projected indefinite period of benefit."
       }
      }
     },
     "auth_ref": [
      "r970"
     ]
    },
    "us-gaap_IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tradename, foreign currency translation",
        "label": "Indefinite-Lived Intangible Assets, Foreign Currency Translation Gain (Loss)",
        "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) an asset, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit to fair value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsGoodwillTradenameDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Indefinite-Lived Intangible Assets, Purchase Accounting Adjustments",
        "terseLabel": "Tradename, Acquisitions",
        "documentation": "Amount of increase (decrease) of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit, from purchase accounting adjustments."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "IndividualAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Individual [Axis]",
        "terseLabel": "Individual:"
       }
      }
     },
     "auth_ref": [
      "r831",
      "r839",
      "r849",
      "r866",
      "r874",
      "r878",
      "r886"
     ]
    },
    "ceco_IndustrialProcessSolutionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "IndustrialProcessSolutionsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Industrial Process Solutions Segment [Member]",
        "label": "Industrial Process Solutions [Member]",
        "documentation": "Industrial process solutions member."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]",
        "terseLabel": "Insider Trading Arrangements:"
       }
      }
     },
     "auth_ref": [
      "r884"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]",
        "terseLabel": "Insider Trading Policies and Procedures:"
       }
      }
     },
     "auth_ref": [
      "r820",
      "r890"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTrdPoliciesProcAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures Adopted [Flag]",
        "terseLabel": "Insider Trading Policies and Procedures Adopted"
       }
      }
     },
     "auth_ref": [
      "r820",
      "r890"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]",
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted"
       }
      }
     },
     "auth_ref": [
      "r820",
      "r890"
     ]
    },
    "ceco_InstallmentsPaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "InstallmentsPaid",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Installments Paid",
        "documentation": "Installments Paid"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Interest expense",
        "label": "Interest Expense",
        "totalLabel": "Interest Expense, Total",
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense."
       }
      }
     },
     "auth_ref": [
      "r87",
      "r154",
      "r189",
      "r249",
      "r582",
      "r737",
      "r813",
      "r994"
     ]
    },
    "us-gaap_InterestIncomeExpenseNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeExpenseNet",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income (Expense), Net",
        "totalLabel": "Interest Income (Expense), Net, Total",
        "terseLabel": "Net income attributable to CECO Environmental Corp.",
        "documentation": "The net amount of operating interest income (expense)."
       }
      }
     },
     "auth_ref": [
      "r152"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest",
        "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities",
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount."
       }
      }
     },
     "auth_ref": [
      "r194",
      "r197",
      "r198"
     ]
    },
    "us-gaap_InterestRevenueExpenseNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestRevenueExpenseNet",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net revenue",
        "label": "Interest Revenue (Expense), Net",
        "totalLabel": "Interest Revenue (Expense), Net, Total",
        "documentation": "Amount of interest revenue (income derived from investments in debt securities and on cash and cash equivalents) net of interest expense (cost of borrowed funds accounted for as interest)."
       }
      }
     },
     "auth_ref": [
      "r245"
     ]
    },
    "us-gaap_IntersegmentEliminationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntersegmentEliminationMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intersegment Eliminations [Member]",
        "terseLabel": "Inter-Segment Elimination [Member]",
        "documentation": "Eliminating entries used in operating segment consolidation."
       }
      }
     },
     "auth_ref": [
      "r247",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r264",
      "r268"
     ]
    },
    "us-gaap_IntersubsegmentEliminationsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntersubsegmentEliminationsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intersubsegment Eliminations [Member]",
        "terseLabel": "Intra-Segment Sales [Member]",
        "documentation": "Eliminating entries used in subsegment consolidation."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intra-Segment and Inter-Segment Revenues",
        "label": "Intra Segment And Inter Segment Elimination By Revenue Table [Text Block]",
        "documentation": "Intra segment and inter segment elimination by revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventories"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Inventory Disclosure [Text Block]",
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory."
       }
      }
     },
     "auth_ref": [
      "r326"
     ]
    },
    "us-gaap_InventoryFinishedGoods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryFinishedGoods",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finished goods",
        "label": "Inventory, Finished Goods, Gross",
        "totalLabel": "Inventory, Finished Goods, Gross, Total",
        "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": [
      "r906"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryNet",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total inventories",
        "terseLabel": "Inventories, net",
        "label": "Inventory, Net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r180",
      "r768",
      "r803"
     ]
    },
    "us-gaap_InventoryNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryNetAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory, Net [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryRawMaterials": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryRawMaterials",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials",
        "label": "Inventory, Raw Materials, Gross",
        "totalLabel": "Inventory, Raw Materials, Gross, Total",
        "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r908"
     ]
    },
    "ceco_InventoryReserveExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "InventoryReserveExpenseBenefit",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory reserve expense",
        "label": "Inventory Reserve Expense Benefit",
        "documentation": "Inventory reserve expense benefit."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryValuationReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryValuationReserves",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Obsolescence allowance",
        "label": "Inventory Valuation Reserves",
        "periodStartLabel": "Inventory Valuation Reserves, Beginning Balance",
        "periodEndLabel": "Inventory Valuation Reserves, Ending Balance",
        "documentation": "Amount of valuation reserve for inventory."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r909"
     ]
    },
    "us-gaap_InventoryWorkInProcess": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryWorkInProcess",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesSummaryOfInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Work in process",
        "label": "Inventory, Work in Process, Gross",
        "documentation": "Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r907"
     ]
    },
    "us-gaap_InventoryWriteDown": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryWriteDown",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amounts credited to the allowance for obsolete inventory",
        "label": "Inventory Write-down",
        "documentation": "Amount of loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels."
       }
      }
     },
     "auth_ref": [
      "r327"
     ]
    },
    "us-gaap_InvestmentsAllOtherInvestmentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsAllOtherInvestmentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Investments, All Other Investments [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_JointVentureAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "JointVentureAgreementMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Joint Venture Agreement [Member]",
        "documentation": "Joint venture agreement.",
        "terseLabel": "Joint Venture Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_KemcoSystemsCoLlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "KemcoSystemsCoLlcMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Kemco Systems Co Llc [Member]",
        "label": "Kemco Systems Co Llc [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_LeaseLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "LeaseLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term operating lease liability",
        "label": "Lease Liabilities Current",
        "documentation": "Lease liabilities, current."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LessorOperatingLeaseIndemnificationPaymentReceived": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LessorOperatingLeaseIndemnificationPaymentReceived",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax indemnification received",
        "label": "Lessor, Operating Lease, Indemnification Payment Received",
        "documentation": "Amount received for indemnification payment for tax effect other than investment tax credit for operating lease."
       }
      }
     },
     "auth_ref": [
      "r802"
     ]
    },
    "us-gaap_LettersOfCreditOutstandingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LettersOfCreditOutstandingAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate principal amount outstanding under the credit facilities",
        "label": "Letters of Credit Outstanding, Amount",
        "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Liabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "terseLabel": "Liabilities",
        "label": "Liabilities",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r201",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r549",
      "r552",
      "r553",
      "r570",
      "r711",
      "r775",
      "r815",
      "r957",
      "r979",
      "r980"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and shareholders' 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": [
      "r104",
      "r146",
      "r661",
      "r803",
      "r919",
      "r934",
      "r972"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "LIABILITIES AND SHAREHOLDERS\u2019 EQUITY",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "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": [
      "r30",
      "r169",
      "r201",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r549",
      "r552",
      "r553",
      "r570",
      "r803",
      "r957",
      "r979",
      "r980"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current liabilities:",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilityForUncertainTaxPositionsNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liability for uncertain tax positions",
        "label": "Liability for Uncertainty in Income Taxes, Noncurrent",
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r34"
     ]
    },
    "us-gaap_LineOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCredit",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Bank guarantee agreement outstanding amount",
        "label": "Long-Term Line of Credit",
        "totalLabel": "Long-term Line of Credit, Total",
        "terseLabel": "Revolving credit facility",
        "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r144",
      "r987"
     ]
    },
    "us-gaap_LineOfCreditFacilityLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Line Of Credit Facility [Line Items]",
        "label": "Line of Credit Facility [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": [
      "r918"
     ]
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bank guarantee issuance under bilateral lines and collateral",
        "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": [
      "r26"
     ]
    },
    "us-gaap_LineOfCreditFacilityPeriodicPaymentPrincipal": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityPeriodicPaymentPrincipal",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding borrowings, quarterly principal installments payable amount",
        "label": "Line of Credit Facility, Periodic Payment, Principal",
        "documentation": "Amount of the required periodic payment applied to principal."
       }
      }
     },
     "auth_ref": [
      "r26"
     ]
    },
    "us-gaap_LineOfCreditFacilityTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Line Of Credit Facility [Table]",
        "label": "Line of Credit Facility [Table]",
        "documentation": "A table or schedule providing information pertaining to short-term or long-term contractual arrangements with lenders, including letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r918"
     ]
    },
    "us-gaap_LineOfCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit [Member]",
        "terseLabel": "Line Of Credit [Member]",
        "documentation": "A contractual arrangement with a lender under which borrowings can be made up to a specific amount at any point in time, and under which borrowings outstanding may be either short-term or long-term, depending upon the particulars."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LitigationSettlementAmountAwardedFromOtherParty": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LitigationSettlementAmountAwardedFromOtherParty",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cumulative settlement payments for cases involving asbestos-related claims",
        "label": "Litigation Settlement, Amount Awarded from Other Party",
        "documentation": "Amount awarded from other party in judgment or settlement of litigation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable",
        "label": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]",
        "documentation": "The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r928"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total outstanding borrowings under the Credit Facility",
        "label": "Long-Term Debt",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r144",
      "r381",
      "r395",
      "r783",
      "r784",
      "r987"
     ]
    },
    "us-gaap_LongTermDebtCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermDebtCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: current portion",
        "terseLabel": "Current portion of debt",
        "label": "Long-Term Debt, Current Maturities",
        "totalLabel": "Long-term Debt, Current Maturities, Total",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r175"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Maturity, Year One",
        "terseLabel": "Credit facility principal payments 2024",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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": [
      "r12",
      "r205",
      "r386"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Maturity, Year Four",
        "terseLabel": "Credit facility principal payments 2027",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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": [
      "r12",
      "r205",
      "r386"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Maturity, Year Three",
        "terseLabel": "Credit facility principal payments 2026",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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": [
      "r12",
      "r205",
      "r386"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Maturity, Year Two",
        "terseLabel": "Credit facility principal payments 2025",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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": [
      "r12",
      "r205",
      "r386"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Maturity, Remainder of Fiscal Year",
        "terseLabel": "Credit facility principal payments 2023",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": [
      "r921"
     ]
    },
    "us-gaap_LongTermDebtNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermDebtNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total debt, less current portion",
        "label": "Long-Term Debt, Excluding Current Maturities",
        "totalLabel": "Long-term Debt, Excluding Current Maturities, Total",
        "terseLabel": "Debt, less current portion",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r176"
     ]
    },
    "us-gaap_LossContingenciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingenciesTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingencies [Table]",
        "documentation": "Discloses the specific components (such as the nature, name, and date) of the loss contingency and gives an estimate of the possible loss or range of loss, or states that a reasonable estimate cannot be made. Excludes environmental contingencies, warranties and unconditional purchase obligations."
       }
      }
     },
     "auth_ref": [
      "r349",
      "r350",
      "r351",
      "r354",
      "r951",
      "r952"
     ]
    },
    "us-gaap_LossContingencyManagementsAssessmentAndProcess": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingencyManagementsAssessmentAndProcess",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assessment regarding Loss contingency impact Description",
        "label": "Loss Contingency, Management's Assessment and Process",
        "documentation": "Describes management's process to evaluate the contingency matter and to estimate the impact on the financial statements and ongoing operations, such as added credit risk or loss of customers, including pertinent information to adequately disclose the matter and significant assumptions underlying the estimates."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingencyPendingClaimsNumber": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossContingencyPendingClaimsNumber",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of claims pending",
        "label": "Loss Contingency, Pending Claims, Number",
        "periodStartLabel": "Loss Contingency, Pending Claims, Number, Beginning Balance",
        "periodEndLabel": "Loss Contingency, Pending Claims, Number, Ending Balance",
        "documentation": "Number of pending claims pertaining to a loss contingency."
       }
      }
     },
     "auth_ref": [
      "r951",
      "r952"
     ]
    },
    "ceco_MaderHoldingsLPMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "MaderHoldingsLPMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Mader Holdings L P [Member]",
        "documentation": "Mader holdings.",
        "terseLabel": "Mader Holdings L.P. [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_MalvarEngineeringLimitedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "MalvarEngineeringLimitedMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Malvar Engineering Limited [Member]",
        "label": "Malvar Engineering Limited [Member]",
        "terseLabel": "Malvar Engineering Limited [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_MaximumConsolidatedLeverageRatio": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "MaximumConsolidatedLeverageRatio",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum consolidated leverage ratio",
        "label": "Maximum Consolidated Leverage Ratio",
        "documentation": "Maximum consolidated leverage ratio."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]",
        "terseLabel": "Maximum [Member]"
       }
      }
     },
     "auth_ref": [
      "r350",
      "r351",
      "r352",
      "r353",
      "r479",
      "r627",
      "r682",
      "r702",
      "r703",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r765",
      "r766",
      "r778",
      "r787",
      "r798",
      "r804",
      "r961",
      "r981",
      "r982",
      "r983",
      "r984",
      "r985",
      "r986"
     ]
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure [Axis]",
        "terseLabel": "Measure:"
       }
      }
     },
     "auth_ref": [
      "r858"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r858"
     ]
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]",
        "terseLabel": "Minimum [Member]"
       }
      }
     },
     "auth_ref": [
      "r350",
      "r351",
      "r352",
      "r353",
      "r479",
      "r627",
      "r682",
      "r702",
      "r703",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r765",
      "r766",
      "r778",
      "r787",
      "r798",
      "r804",
      "r961",
      "r981",
      "r982",
      "r983",
      "r984",
      "r985",
      "r986"
     ]
    },
    "us-gaap_MinorityInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MinorityInterest",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity, Attributable to Noncontrolling Interest",
        "totalLabel": "Stockholders' Equity Attributable to Noncontrolling Interest, Total",
        "periodStartLabel": "Stockholders' Equity Attributable to Noncontrolling Interest, Beginning Balance",
        "periodEndLabel": "Stockholders' Equity Attributable to Noncontrolling Interest, Ending Balance",
        "terseLabel": "Non-controlling interest",
        "documentation": "Amount of equity (deficit) attributable to noncontrolling interest. Excludes temporary equity."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r145",
      "r201",
      "r311",
      "r355",
      "r358",
      "r359",
      "r360",
      "r366",
      "r367",
      "r570",
      "r660",
      "r715"
     ]
    },
    "us-gaap_MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Noncontrolling interest distribution",
        "label": "Noncontrolling Interest, Decrease from Distributions to Noncontrolling Interest Holders",
        "documentation": "Decrease in noncontrolling interest balance from payment of dividends or other distributions by the non-wholly owned subsidiary or partially owned entity, included in the consolidation of the parent entity, to the noncontrolling interest holders."
       }
      }
     },
     "auth_ref": [
      "r132"
     ]
    },
    "us-gaap_MinorityInterestOwnershipPercentageByParent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MinorityInterestOwnershipPercentageByParent",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsidiary, Ownership Percentage, Parent",
        "label": "Subsidiary, Ownership Percentage, Parent",
        "documentation": "The parent entity's interest in net assets of the subsidiary, expressed as a percentage."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MnpiDiscTimedForCompValFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]",
        "terseLabel": "MNPI Disclosure Timed for Compensation Value"
       }
      }
     },
     "auth_ref": [
      "r877"
     ]
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MtrlTermsOfTrdArrTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Terms of Trading Arrangement [Text Block]",
        "terseLabel": "Material Terms of Trading Arrangement"
       }
      }
     },
     "auth_ref": [
      "r885"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NamedExecutiveOfficersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Named Executive Officers, Footnote [Text Block]",
        "terseLabel": "Named Executive Officers, Footnote"
       }
      }
     },
     "auth_ref": [
      "r859"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash (used in) provided by 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": [
      "r196"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from financing activities:",
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "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": [
      "r196"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from investing activities:",
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) 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": [
      "r120",
      "r121",
      "r122"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from operating activities:",
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (Loss)",
        "terseLabel": "Net Income (Loss)",
        "totalLabel": "Net income attributable to CECO Environmental Corp.",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r112",
      "r122",
      "r151",
      "r167",
      "r182",
      "r184",
      "r188",
      "r201",
      "r211",
      "r215",
      "r216",
      "r217",
      "r218",
      "r221",
      "r222",
      "r232",
      "r245",
      "r259",
      "r265",
      "r268",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r565",
      "r570",
      "r666",
      "r734",
      "r750",
      "r751",
      "r776",
      "r813",
      "r957"
     ]
    },
    "us-gaap_NetIncomeLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLossAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (Loss) Attributable to Parent [Abstract]",
        "terseLabel": "Numerator (for basic and diluted earnings per share)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLossAttributableToNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLossAttributableToNoncontrollingInterest",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (Loss) Attributable to Noncontrolling Interest",
        "totalLabel": "Net Income (Loss) Attributable to Noncontrolling Interest, Total",
        "negatedLabel": "Non-controlling interest",
        "terseLabel": "Noncontrolling interest",
        "documentation": "Amount of Net Income (Loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r139",
      "r182",
      "r184",
      "r221",
      "r222",
      "r665",
      "r913"
     ]
    },
    "ceco_NetherlandsFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "NetherlandsFacilityMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Netherlands Facility [Member]",
        "label": "Netherlands Facility [Member]",
        "documentation": "Netherlands facility."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "New Financial Accounting Pronouncements",
        "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]",
        "documentation": "The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle."
       }
      }
     },
     "auth_ref": [
      "r158",
      "r159",
      "r162",
      "r165",
      "r209",
      "r210",
      "r213",
      "r214",
      "r223",
      "r224",
      "r313",
      "r314",
      "r532",
      "r533",
      "r534",
      "r559",
      "r562",
      "r566",
      "r567",
      "r568",
      "r571",
      "r572",
      "r573",
      "r584",
      "r585",
      "r589",
      "r630",
      "r631",
      "r632",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncementsPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Standards Adopted in Fiscal 2024",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_NewAccountingStandardsNotYetAdoptedPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "NewAccountingStandardsNotYetAdoptedPolicyTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureNewFinancialAccountingPronouncementsPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "New Accounting Standards Not Yet Adopted Policy [Text Block]",
        "documentation": "New accounting standards not yet adopted policy.",
        "terseLabel": "Accounting Standards to be Adopted"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonGaapMeasureDescriptionTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-GAAP Measure Description [Text Block]",
        "terseLabel": "Non-GAAP Measure Description"
       }
      }
     },
     "auth_ref": [
      "r858"
     ]
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-NEOs [Member]",
        "terseLabel": "Non-NEOs"
       }
      }
     },
     "auth_ref": [
      "r828",
      "r839",
      "r849",
      "r866",
      "r874"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoAvgCompActuallyPaidAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoAvgTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO Average Total Compensation Amount",
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r855"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO [Member]",
        "terseLabel": "Non-PEO NEO"
       }
      }
     },
     "auth_ref": [
      "r866"
     ]
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted"
       }
      }
     },
     "auth_ref": [
      "r885"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated"
       }
      }
     },
     "auth_ref": [
      "r885"
     ]
    },
    "us-gaap_NoncatastrophicEventAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncatastrophicEventAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noncatastrophic Event [Axis]",
        "documentation": "Information by type of noncatastrophic event causing change in the insurer's provision."
       }
      }
     },
     "auth_ref": [
      "r155"
     ]
    },
    "us-gaap_NoncatastrophicEventDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncatastrophicEventDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noncatastrophic Event [Domain]",
        "documentation": "Noncatastrophic event causing change in the insurer's provision."
       }
      }
     },
     "auth_ref": [
      "r155"
     ]
    },
    "us-gaap_NoncontrollingInterestMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncontrollingInterestMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noncontrolling Interest [Member]",
        "label": "Noncontrolling Interest [Member]",
        "documentation": "This element represents that portion of equity (net assets) in a subsidiary not attributable, directly or indirectly, to the parent. A noncontrolling interest is sometimes called a minority interest."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r400",
      "r922",
      "r923",
      "r924",
      "r996"
     ]
    },
    "us-gaap_NoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noncurrent Assets",
        "label": "Long-Lived Assets",
        "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r273"
     ]
    },
    "us-gaap_NotesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NotesPayable",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Notes Payable, Total",
        "label": "Notes Payable",
        "documentation": "Including the current and noncurrent portions, aggregate carrying amount of all types of notes payable, as of the balance sheet date, with initial maturities beyond one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r144",
      "r987"
     ]
    },
    "ceco_NotesPayableCurrent1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "NotesPayableCurrent1",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Notes payable",
        "documentation": "Notes Payable Current is the part of Total Debt",
        "label": "Notes Payable Current1"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OpenTaxYear": {
     "xbrltype": "gYearListItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OpenTaxYear",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Open tax years",
        "label": "Open Tax Year",
        "documentation": "Tax year that remains open to examination under enacted tax laws, in YYYY format."
       }
      }
     },
     "auth_ref": [
      "r527"
     ]
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income from operations",
        "label": "Operating Income (Loss)",
        "totalLabel": "Income from operations",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r245",
      "r259",
      "r265",
      "r268",
      "r776"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liabilities",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r587"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Right-of-Use Asset",
        "verboseLabel": "Right-of-use assets from operating leases",
        "terseLabel": "Right-of-use assets from operating leases",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r586"
     ]
    },
    "us-gaap_OperatingSegmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingSegmentsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Segments [Member]",
        "label": "Operating Segments [Member]",
        "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r268"
     ]
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBasisOfReportingForConsolidatedFinancialStatements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basis of Reporting for Consolidated Financial Statements",
        "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]",
        "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure."
       }
      }
     },
     "auth_ref": [
      "r94",
      "r137",
      "r691",
      "r692"
     ]
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAccruedLiabilitiesCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Accrued Liabilities, Current",
        "terseLabel": "Other",
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "us-gaap_OtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Assets",
        "label": "Other Assets",
        "totalLabel": "Other Assets, Total",
        "documentation": "Amount of assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r140",
      "r173",
      "r652",
      "r815"
     ]
    },
    "us-gaap_OtherCommitmentsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherCommitmentsLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesLegalMattersAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Commitments [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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency translation (loss) gain",
        "verboseLabel": "Translation gain (loss)",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent",
        "totalLabel": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent, Total",
        "negatedLabel": "Foreign currency translation (loss) gain",
        "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, attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r15",
      "r138"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other comprehensive income, net of tax:",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Other Liabilities, Total",
        "label": "Other Liabilities",
        "negatedLabel": "Other liabilities Assumed",
        "documentation": "Amount of liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r90",
      "r651",
      "r707",
      "r708",
      "r815",
      "r993"
     ]
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilitiesNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other liabilities",
        "label": "Other Liabilities, Noncurrent",
        "totalLabel": "Other Liabilities, Noncurrent, Total",
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r34"
     ]
    },
    "ceco_OtherNonInvesteesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "OtherNonInvesteesMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other Non Investees [Member]",
        "label": "Other Non Investees [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherNoncashIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNoncashIncomeExpense",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other",
        "terseLabel": "Other",
        "label": "Other Noncash Income (Expense)",
        "totalLabel": "Other Noncash Income (Expense), Total",
        "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other."
       }
      }
     },
     "auth_ref": [
      "r122"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Nonoperating Income (Expense)",
        "totalLabel": "Other Nonoperating Income (Expense), Total",
        "terseLabel": "Other (expense) income, net",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r117"
     ]
    },
    "us-gaap_OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Health Care Plan [Member]",
        "label": "Other Pension, Postretirement and Supplemental Plans [Member]",
        "documentation": "Pension plan, other postretirement plan, and supplemental retirement plan, classified as other. Includes, but is not limited to, defined benefit and defined contribution plans."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_OtherPerfMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OtherPerfMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Performance Measure, Amount",
        "terseLabel": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r858"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingAggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Aggregate Erroneous Compensation Amount",
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r826",
      "r837",
      "r847",
      "r872"
     ]
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery Compensation Amount",
        "terseLabel": "Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r829",
      "r840",
      "r850",
      "r875"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r829",
      "r840",
      "r850",
      "r875"
     ]
    },
    "srt_OwnershipAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "OwnershipAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Ownership [Axis]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_OwnershipDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "OwnershipDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Ownership [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r854"
     ]
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PayablesAndAccrualsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Payables and Accruals [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForPreviousAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForPreviousAcquisition",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase Price",
        "label": "Payments for Previous Acquisition",
        "documentation": "Cash outflow representing an adjustment to the purchase price of a previous acquisition."
       }
      }
     },
     "auth_ref": [
      "r914"
     ]
    },
    "us-gaap_PaymentsForProceedsFromInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForProceedsFromInvestments",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Net cash received (paid) for acquisitions",
        "label": "Payments for (Proceeds from) Investments",
        "totalLabel": "Payments for (Proceeds from) Investments, Total",
        "documentation": "The net cash paid (received) associated with the acquisition or disposal of all investments, including securities and other assets."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Common stock repurchase",
        "terseLabel": "Common stock repurchase",
        "label": "Payments for Repurchase of Common Stock",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r43"
     ]
    },
    "us-gaap_PaymentsOfFinancingCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsOfFinancingCosts",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Payments of Financing Costs, Total",
        "label": "Payments of Financing Costs",
        "terseLabel": "Deferred financing fees paid",
        "negatedLabel": "Deferred financing fees paid",
        "documentation": "The cash outflow for loan and debt issuance costs."
       }
      }
     },
     "auth_ref": [
      "r42"
     ]
    },
    "ceco_PaymentsOnFinanceLeasesAndFinancingLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "PaymentsOnFinanceLeasesAndFinancingLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Payments on finance leases and financing liability",
        "label": "Payments On Finance Leases And Financing Liability",
        "documentation": "Payments on finance leases and financing liability."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Acquisitions of property and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "totalLabel": "Payments to Acquire Property, Plant, and Equipment, Total",
        "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": [
      "r119"
     ]
    },
    "us-gaap_PaymentsToMinorityShareholders": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToMinorityShareholders",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Noncontrolling Interests",
        "negatedLabel": "Noncontrolling interest distributions",
        "documentation": "Amount of cash outflow to a noncontrolling interest. Includes, but not limited to, reduction of noncontrolling interest ownership. Excludes dividends paid to the noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r42"
     ]
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeerGroupIssuersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Peer Group Issuers, Footnote [Text Block]",
        "terseLabel": "Peer Group Issuers, Footnote"
       }
      }
     },
     "auth_ref": [
      "r857"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeerGroupTotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Peer Group Total Shareholder Return Amount",
        "terseLabel": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r857"
     ]
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlans"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pension and Employee Benefit Plans",
        "label": "Retirement Benefits [Text Block]",
        "documentation": "The entire disclosure for retirement benefits."
       }
      }
     },
     "auth_ref": [
      "r407",
      "r431",
      "r433",
      "r439",
      "r456",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r474",
      "r475",
      "r476",
      "r790"
     ]
    },
    "us-gaap_PensionContributions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PensionContributions",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment for Pension Benefits",
        "documentation": "Amount of cash outflow for pension benefit. Includes, but is not limited to, employer contribution to fund plan asset and payment to retiree. Excludes other postretirement benefit."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "us-gaap_PensionPlansDefinedBenefitMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PensionPlansDefinedBenefitMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pension Plan [Member]",
        "label": "Pension Plan [Member]",
        "documentation": "Plan designed to provide participant with pension benefits. Includes, but is not limited to, defined benefit and defined contribution plans. Excludes other postretirement benefits."
       }
      }
     },
     "auth_ref": [
      "r408",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r457",
      "r460",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r476",
      "r477",
      "r481",
      "r790",
      "r791",
      "r795",
      "r796",
      "r797"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoActuallyPaidCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Actually Paid Compensation Amount",
        "terseLabel": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r856"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO [Member]",
        "terseLabel": "PEO"
       }
      }
     },
     "auth_ref": [
      "r866"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Name",
        "terseLabel": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r859"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Total Compensation Amount",
        "terseLabel": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r855"
     ]
    },
    "ceco_PercentageOfEquityHoldInJointVenture": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "PercentageOfEquityHoldInJointVenture",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percentage of equity hold in joint venture",
        "label": "Percentage Of Equity Hold In Joint Venture",
        "documentation": "Percentage of equity hold in joint venture."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, par value",
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r397"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares authorized",
        "label": "Preferred Stock, Shares Authorized",
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r713"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares issued",
        "label": "Preferred Stock, Shares Issued",
        "totalLabel": "Preferred Stock, Shares Issued, Total",
        "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r397"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, $.01 par value; 10,000 shares authorized, none issued",
        "label": "Preferred Stock, Value, Issued",
        "totalLabel": "Preferred Stock, Value, Issued, Total",
        "periodStartLabel": "Preferred Stock, Value, Issued, Beginning Balance",
        "periodEndLabel": "Preferred Stock, Value, Issued, Ending Balance",
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r656",
      "r803"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid expenses and other current assets",
        "label": "Prepaid Expense and Other Assets, Current",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r910"
     ]
    },
    "us-gaap_PrepaidTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidTaxes",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid income taxes",
        "label": "Prepaid Taxes",
        "documentation": "Amount of asset related to consideration paid in advance for income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r770",
      "r780",
      "r935"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfLongTermDebt",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Proceeds from Issuance of Long-term Debt, Total",
        "label": "Proceeds from Issuance of Long-Term Debt",
        "terseLabel": "Borrowing on long-term debt",
        "documentation": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r694"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from employee stock purchase plan and exercise of stock options",
        "label": "Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised",
        "totalLabel": "Proceeds, Issuance of Shares, Share-based Payment Arrangement, Including Option Exercised, Total",
        "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r18"
     ]
    },
    "us-gaap_ProceedsFromRepaymentsOfLinesOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromRepaymentsOfLinesOfCredit",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repayments on revolving credit lines",
        "label": "Proceeds from (Repayments of) Lines of Credit",
        "totalLabel": "Proceeds from (Repayments of) Lines of Credit, Total",
        "documentation": "The net cash inflow or cash outflow from a contractual arrangement with the lender, including letter of credit, standby letter of credit and revolving credit arrangements, under which borrowings can be made up to a specific amount at any point in time with either short term or long term maturity that is collateralized (backed by pledge, mortgage or other lien in the entity's assets)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net proceeds from sale of assets",
        "label": "Proceeds from Sale of Property, Plant, and Equipment",
        "totalLabel": "Proceeds from Sale of Property, Plant, and Equipment, Total",
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r118"
     ]
    },
    "us-gaap_ProceedsFromStockPlans": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromStockPlans",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash received from employee stock option exercised",
        "label": "Proceeds from Stock Plans",
        "documentation": "The cash inflow associated with the amount received from the stock plan during the period."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_ProductWarrantyAccrualClassifiedCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProductWarrantyAccrualClassifiedCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesSummaryOfAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued warranty",
        "label": "Product Warranty Accrual, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r954",
      "r955"
     ]
    },
    "us-gaap_ProfitLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProfitLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeUnaudited",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income",
        "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest",
        "verboseLabel": "Net income (loss)",
        "totalLabel": "Net income",
        "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r182",
      "r184",
      "r195",
      "r201",
      "r211",
      "r221",
      "r222",
      "r245",
      "r259",
      "r265",
      "r268",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r547",
      "r550",
      "r551",
      "r565",
      "r570",
      "r649",
      "r664",
      "r699",
      "r734",
      "r750",
      "r751",
      "r776",
      "r800",
      "r801",
      "r814",
      "r913",
      "r957"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment, net",
        "label": "Property, Plant and Equipment, Net",
        "totalLabel": "Property, Plant and Equipment, Net, Total",
        "periodStartLabel": "Property, Plant and Equipment, Net, Beginning Balance",
        "periodEndLabel": "Property, Plant and Equipment, Net, Ending Balance",
        "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": [
      "r11",
      "r650",
      "r662",
      "r803"
     ]
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bad debt expense (recoveries)",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r193",
      "r319"
     ]
    },
    "us-gaap_ProvisionForOtherCreditLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForOtherCreditLosses",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision for Other Credit Losses",
        "terseLabel": "Provision for credit losses",
        "documentation": "Amount of expense related to credit loss from transactions other than loan and lease transactions."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r148"
     ]
    },
    "ceco_PurchasePrice": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "PurchasePrice",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Purchase Price",
        "documentation": "Purchase Price"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PvpTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Table]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r854"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PvpTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance [Table Text Block]",
        "terseLabel": "Pay vs Performance Disclosure, Table"
       }
      }
     },
     "auth_ref": [
      "r854"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r350",
      "r351",
      "r352",
      "r353",
      "r431",
      "r479",
      "r509",
      "r510",
      "r511",
      "r603",
      "r627",
      "r682",
      "r702",
      "r703",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r765",
      "r766",
      "r778",
      "r787",
      "r798",
      "r804",
      "r807",
      "r948",
      "r961",
      "r982",
      "r983",
      "r984",
      "r985",
      "r986"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "auth_ref": [
      "r350",
      "r351",
      "r352",
      "r353",
      "r431",
      "r479",
      "r509",
      "r510",
      "r511",
      "r603",
      "r627",
      "r682",
      "r702",
      "r703",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r765",
      "r766",
      "r778",
      "r787",
      "r798",
      "r804",
      "r807",
      "r948",
      "r961",
      "r982",
      "r983",
      "r984",
      "r985",
      "r986"
     ]
    },
    "us-gaap_ReceivableTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivableTypeDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivable",
        "label": "Receivable [Domain]",
        "documentation": "Financing arrangement representing a contractual right to receive money either on demand or on fixed and determinable dates."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_ReceivablesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Receivables [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReceivablesLongTermContractsOrPrograms": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesLongTermContractsOrPrograms",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract receivables",
        "label": "Receivables, Long-Term Contracts or Programs",
        "totalLabel": "Receivables, Long-term Contracts or Programs, Total",
        "documentation": "Amount to be collected within one year of the balance sheet date (or one operating cycle, if longer) from customers in accordance with the contractual provisions of long-term contracts or programs including amounts billed and unbilled as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r905"
     ]
    },
    "us-gaap_ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and Equipment Additions, Depreciation and Amortization and Identifiable Assets",
        "label": "Segment, Reconciliation of Other Items from Segments to Consolidated [Table Text Block]",
        "documentation": "Tabular disclosure of reconciliation of other items from reportable segments to their consolidated amount. Excludes reconciliation of revenue, profit (loss), and assets."
       }
      }
     },
     "auth_ref": [
      "r50",
      "r51"
     ]
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]",
        "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure"
       }
      }
     },
     "auth_ref": [
      "r821",
      "r832",
      "r842",
      "r867"
     ]
    },
    "us-gaap_RelatedPartyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party, Type [Domain]",
        "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r590",
      "r591",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r730",
      "r732",
      "r755"
     ]
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party, Type [Axis]",
        "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r590",
      "r591",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r730",
      "r732",
      "r755",
      "r978"
     ]
    },
    "us-gaap_RepaymentsOfLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RepaymentsOfLongTermDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repayments of long-term debt",
        "label": "Repayments of Long-Term Debt",
        "totalLabel": "Repayments of Long-term Debt, Total",
        "documentation": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r44",
      "r695"
     ]
    },
    "us-gaap_ReportableSubsegmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReportableSubsegmentsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reportable Subsegments [Member]",
        "documentation": "Identifies division of a component of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": []
    },
    "srt_RepurchaseAgreementCounterpartyNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RepurchaseAgreementCounterpartyNameDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Counterparty Name",
        "label": "Counterparty Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r203",
      "r204",
      "r372",
      "r398",
      "r592",
      "r772",
      "r773"
     ]
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDateAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date [Axis]",
        "terseLabel": "Restatement Determination Date:"
       }
      }
     },
     "auth_ref": [
      "r822",
      "r833",
      "r843",
      "r868"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date",
        "terseLabel": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r823",
      "r834",
      "r844",
      "r869"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDoesNotRequireRecoveryTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Does Not Require Recovery [Text Block]",
        "terseLabel": "Restatement does not require Recovery"
       }
      }
     },
     "auth_ref": [
      "r830",
      "r841",
      "r851",
      "r876"
     ]
    },
    "us-gaap_RestrictedCashCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedCashCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash",
        "label": "Restricted Cash, Current",
        "documentation": "Amount of cash restricted as to withdrawal or usage, classified as current. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits."
       }
      }
     },
     "auth_ref": [
      "r904",
      "r917"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Units [Member]",
        "label": "Restricted Stock Units (RSUs) [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_RestructuringCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCharges",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Charges",
        "totalLabel": "Restructuring Charges, Total",
        "terseLabel": "Restructuring expenses",
        "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r344",
      "r345",
      "r949"
     ]
    },
    "ceco_RetainageReceivablesOnContractsPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "RetainageReceivablesOnContractsPeriod",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retainage receivables on contracts period",
        "label": "Retainage Receivables On Contracts Period",
        "documentation": "Retainage receivables on contracts period.",
        "verboseLabel": "Account receivable, net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated loss",
        "label": "Retained Earnings (Accumulated Deficit)",
        "totalLabel": "Retained Earnings (Accumulated Deficit), Total",
        "periodStartLabel": "Retained Earnings (Accumulated Deficit), Beginning Balance",
        "periodEndLabel": "Retained Earnings (Accumulated Deficit), Ending Balance",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r132",
      "r659",
      "r686",
      "r690",
      "r696",
      "r714",
      "r803"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Loss [Member]",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r163",
      "r206",
      "r207",
      "r208",
      "r212",
      "r220",
      "r222",
      "r312",
      "r315",
      "r517",
      "r518",
      "r519",
      "r530",
      "r531",
      "r554",
      "r556",
      "r557",
      "r560",
      "r563",
      "r683",
      "r685",
      "r700",
      "r996"
     ]
    },
    "us-gaap_RetirementPlanTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetirementPlanTypeAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retirement Plan Type",
        "label": "Retirement Plan Type [Axis]",
        "documentation": "Information by type of retirement benefit plan. Includes, but is not limited to, retirement benefit arrangement for defined benefit pension and other postretirement plans, retirement benefit arrangement for defined contribution pension and other postretirement plans, and special and contractual termination benefits payable upon retirement."
       }
      }
     },
     "auth_ref": [
      "r408",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r457",
      "r460",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r476",
      "r477",
      "r478",
      "r481",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797"
     ]
    },
    "us-gaap_RetirementPlanTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetirementPlanTypeDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retirement Plan Type",
        "label": "Retirement Plan Type [Domain]",
        "documentation": "Type of plan designed to provide participants with retirement benefits. Includes, but is not limited to, retirement benefit arrangement for defined benefit pension and other postretirement plans, retirement benefit arrangement for defined contribution pension and other postretirement plans, and special and contractual termination benefits payable upon retirement."
       }
      }
     },
     "auth_ref": [
      "r408",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r457",
      "r460",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r476",
      "r477",
      "r478",
      "r481",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net sales",
        "terseLabel": "Net sales",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "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": [
      "r246",
      "r247",
      "r258",
      "r263",
      "r264",
      "r270",
      "r272",
      "r274",
      "r404",
      "r405",
      "r628"
     ]
    },
    "us-gaap_Revenues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Revenues",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues",
        "label": "Revenues",
        "totalLabel": "Revenues, Total",
        "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss)."
       }
      }
     },
     "auth_ref": [
      "r190",
      "r201",
      "r246",
      "r247",
      "r258",
      "r263",
      "r264",
      "r270",
      "r272",
      "r274",
      "r311",
      "r355",
      "r356",
      "r358",
      "r359",
      "r360",
      "r362",
      "r364",
      "r366",
      "r367",
      "r570",
      "r649",
      "r957"
     ]
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevolvingCreditFacilityMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revolving Credit Loan [Member]",
        "label": "Revolving Credit Facility [Member]",
        "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]",
        "terseLabel": "Rule 10b5-1 Arrangement Adopted"
       }
      }
     },
     "auth_ref": [
      "r885"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]",
        "terseLabel": "Rule 10b5-1 Arrangement Terminated"
       }
      }
     },
     "auth_ref": [
      "r885"
     ]
    },
    "srt_ScenarioForecastMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScenarioForecastMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario Forecast [Member]",
        "label": "Forecast [Member]"
       }
      }
     },
     "auth_ref": [
      "r480",
      "r925"
     ]
    },
    "srt_ScenarioUnspecifiedDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScenarioUnspecifiedDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario",
        "label": "Scenario [Domain]"
       }
      }
     },
     "auth_ref": [
      "r223",
      "r480",
      "r892",
      "r925"
     ]
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Accounts Notes Loans And Financing Receivable [Table]",
        "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table]",
        "documentation": "Schedule itemizing specific types of trade accounts and notes receivable, and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Accounts Receivable",
        "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]",
        "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAccruedExpensesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "terseLabel": "Summary of Accrued Expenses",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfUnauditedProFormaFinancialInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Business Acquisitions By Acquisition [Table]",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r74",
      "r542"
     ]
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Estimated Fair Values of Assets Acquired and Liabilities Assumed",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]",
        "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r74"
     ]
    },
    "us-gaap_ScheduleOfDebtTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDebtTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Debt",
        "label": "Schedule of Debt [Table Text Block]",
        "documentation": "Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfDefinedBenefitPlansDisclosuresTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDefinedBenefitPlansDisclosuresTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Defined Benefit Plans Disclosures [Table]",
        "label": "Schedule of Defined Benefit Plans Disclosures [Table]",
        "documentation": "Disclosures about an individual defined benefit pension plan or an other postretirement defined benefit plan. It may be appropriate to group certain similar plans. Also includes schedule for fair value of plan assets by major categories of plan assets by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets or liabilities (Level 1), Significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r66",
      "r67",
      "r68",
      "r69"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureEarningsPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Shares Outstanding for Calculation of Earnings Per Share",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "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": [
      "r926"
     ]
    },
    "srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investment, Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r308",
      "r309",
      "r310"
     ]
    },
    "ceco_ScheduleOfFairValueOfFinancialInstrumentsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ScheduleOfFairValueOfFinancialInstrumentsTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureFinancialInstrumentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Fair Value Of Financial Instruments [Table]",
        "label": "Schedule Of Fair Value Of Financial Instruments [Table]",
        "documentation": "Schedule Of Fair Value Of Financial Instruments [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Finite Lived Intangible Assets [Table]",
        "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": [
      "r56",
      "r57",
      "r629"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Assets - Finite Life",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r57"
     ]
    },
    "ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ScheduleOfGoodwillAndOtherIntangibleAssetsLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Goodwill And Other Intangible Assets [Line Items]",
        "label": "Schedule Of Goodwill And Other Intangible Assets [Line Items]",
        "documentation": "Schedule Of Goodwill And Other Intangible Assets [Line Items]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_ScheduleOfGoodwillAndOtherIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ScheduleOfGoodwillAndOtherIntangibleAssetsTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Goodwill And Other Intangible Assets [Table]",
        "label": "Schedule Of Goodwill And Other Intangible Assets [Table]",
        "documentation": "Schedule Of Goodwill And Other Intangible Assets [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Schedule of Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r781",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946"
     ]
    },
    "us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill / Tradename",
        "label": "Schedule of Intangible Assets and Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill and intangible assets, which may be broken down by segment or major class."
       }
      }
     },
     "auth_ref": [
      "r54"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureInventoriesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Inventories",
        "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": [
      "r23",
      "r105",
      "r106",
      "r107"
     ]
    },
    "us-gaap_ScheduleOfNetBenefitCostsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfNetBenefitCostsTableTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosurePensionAndEmployeeBenefitPlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Pension and Employee Benefit Expenses",
        "label": "Schedule of Net Benefit Costs [Table Text Block]",
        "documentation": "Tabular disclosure of the components of net benefit costs for pension plans and/or other employee benefit plans including service cost, interest cost, expected return on plan assets, gain (loss), prior service cost or credit, transition asset or obligation, and gain (loss) recognized due to settlements or curtailments."
       }
      }
     },
     "auth_ref": [
      "r134"
     ]
    },
    "us-gaap_ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilities"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract Assets and Liabilities",
        "label": "Schedule of Regulatory Assets and Liabilities [Text Block]",
        "documentation": "The entire disclosure for detailed information about regulatory assets and liabilities, including current and noncurrent assets created when regulatory agencies permit the deferral of costs to the balance sheet that would otherwise be required to appear on the company's income statement and would be charged against current expenses or revenues, as well as current and noncurrent liabilities created when regulatory agencies permit."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r110"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Segment Reporting Information By Segment [Table]",
        "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": [
      "r47",
      "r48",
      "r49",
      "r54"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Sales and Income from Operation by Business Segment",
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss."
       }
      }
     },
     "auth_ref": [
      "r47",
      "r48",
      "r49",
      "r54"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Share Based Compensation Arrangements By Share Based Payment Award [Table]",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r483",
      "r484",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512"
     ]
    },
    "us-gaap_SecuredDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SecuredDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Secured Debt, Total",
        "label": "Secured Debt",
        "terseLabel": "Secured Debt",
        "documentation": "Carrying value as of the balance sheet date, including the current and noncurrent portions, of collateralized debt obligations (with maturities initially due after one year or beyond the operating cycle, if longer). Such obligations include mortgage loans, chattel loans, and any other borrowings secured by assets of the borrower."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r144",
      "r987"
     ]
    },
    "us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]",
        "terseLabel": "Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]",
        "documentation": "Fixed rate on U.S. dollar, constant-notional interest rate swap that has its variable-rate leg referenced to Secured Overnight Financing Rate (SOFR) with no additional spread over SOFR on variable-rate leg."
       }
      }
     },
     "auth_ref": [
      "r968"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r816"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r818"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments",
        "label": "Segments [Domain]",
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r242",
      "r245",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r268",
      "r274",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r343",
      "r346",
      "r671",
      "r672",
      "r673",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r781",
      "r896",
      "r989"
     ]
    },
    "us-gaap_SegmentExpenditureAdditionToLongLivedAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentExpenditureAdditionToLongLivedAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and equipment additions",
        "label": "Segment, Expenditure, Addition to Long-Lived Assets",
        "documentation": "Amount of expenditure for addition to long-lived assets included in determination of segment assets by chief operating decision maker (CODM) or otherwise regularly provided to CODM. Excludes expenditure for addition to financial instrument, long-term customer relationship of financial institution, mortgage and other servicing rights, deferred policy acquisition cost, and deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r256",
      "r777"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Segment Information",
        "label": "Segment Reporting Disclosure [Text Block]",
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments."
       }
      }
     },
     "auth_ref": [
      "r241",
      "r242",
      "r243",
      "r244",
      "r245",
      "r257",
      "r262",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r274"
     ]
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingInformationLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting Information [Line Items]",
        "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_SellingGeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SellingGeneralAndAdministrativeExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling and administrative expenses",
        "label": "Selling, General and Administrative Expense",
        "totalLabel": "Selling, General and Administrative Expense, Total",
        "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc."
       }
      }
     },
     "auth_ref": [
      "r115"
     ]
    },
    "ceco_SeniorDebtMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "SeniorDebtMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Senior Debt [Member]",
        "label": "Senior Debt [Member]",
        "terseLabel": "Senior Debt [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_SeniorSecuredTermLoanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "SeniorSecuredTermLoanMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtParentheticalDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term Loan [Member]",
        "label": "Senior Secured Term Loan [Member]",
        "documentation": "Senior secured term loan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation expense",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "totalLabel": "Share-based Payment Arrangement, Noncash Expense, Total",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of restricted stock awards granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "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": [
      "r501"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average fair value of restricted stock unit granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "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": [
      "r501"
     ]
    },
    "ceco_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageRiskFreeInterestRate",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Weighted Average Risk-Free Interest Rate",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Weighted Average Risk-Free Interest Rate",
        "terseLabel": "Weighted-average risk free interest rate"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Weighted Average Volatility Rate",
        "terseLabel": "Weighted-average volatility rate",
        "documentation": "Rate of weighted-average expected volatility for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r509"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "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": [
      "r483",
      "r484",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Option exercised, intrinsic value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares."
       }
      }
     },
     "auth_ref": [
      "r505"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "terseLabel": "Number of Options, Granted",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r494"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Weighted-average fair value of stock options granted",
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology."
       }
      }
     },
     "auth_ref": [
      "r504"
     ]
    },
    "ceco_ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentsAwardFairValueAssumptionsWeightedAverageExpectedTerm",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payments award fair value assumptions weighted average expected term",
        "label": "Share Based Compensation Arrangement By Share Based Payments Award Fair Value Assumptions Weighted Average Expected Term",
        "terseLabel": "Weighted-average expected term"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Award Types",
        "terseLabel": "All Award Types",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512"
     ]
    },
    "us-gaap_SharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharesOutstanding",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning Balance, Shares",
        "periodEndLabel": "Ending Balance, Shares",
        "label": "Shares, Outstanding",
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermDebtTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShortTermDebtTypeAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Short-Term Debt, Type [Axis]",
        "documentation": "Information by type of short-term debt arrangement."
       }
      }
     },
     "auth_ref": [
      "r27"
     ]
    },
    "us-gaap_ShortTermDebtTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShortTermDebtTypeDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Short-Term Debt, Type [Domain]",
        "documentation": "Type of short-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_StandbyLettersOfCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StandbyLettersOfCreditMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Letters of Credit [Member]",
        "label": "Standby Letters of Credit [Member]",
        "documentation": "An irrevocable undertaking (typically by a financial institution) to guarantee payment of a specified financial obligation."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r953",
      "r990",
      "r991"
     ]
    },
    "ceco_StateAndForeignAuthoritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "StateAndForeignAuthoritiesMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State and Foreign Authorities [Member]",
        "label": "State And Foreign Authorities [Member]",
        "documentation": "State and foreign authorities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationGoodwillDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments",
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r166",
      "r242",
      "r245",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r268",
      "r274",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r342",
      "r343",
      "r346",
      "r671",
      "r672",
      "r673",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r781",
      "r896",
      "r989"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r36",
      "r163",
      "r186",
      "r187",
      "r188",
      "r206",
      "r207",
      "r208",
      "r212",
      "r220",
      "r222",
      "r240",
      "r312",
      "r315",
      "r400",
      "r517",
      "r518",
      "r519",
      "r530",
      "r531",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r560",
      "r563",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r588",
      "r683",
      "r684",
      "r685",
      "r700",
      "r752"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Line Items]",
        "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": [
      "r206",
      "r207",
      "r208",
      "r240",
      "r628",
      "r693",
      "r701",
      "r704",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r713",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r724",
      "r726",
      "r727",
      "r728",
      "r729",
      "r730",
      "r732",
      "r735",
      "r736",
      "r738",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r752",
      "r808"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement 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": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_StatementScenarioAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "StatementScenarioAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario",
        "label": "Scenario [Axis]"
       }
      }
     },
     "auth_ref": [
      "r223",
      "r480",
      "r892",
      "r893",
      "r925"
     ]
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationNetSalesAndIncomeFromOperationByBusinessSegmentDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationPropertyAndEquipmentAdditionsDepreciationAndAmortizationAndIdentifiableAssetsDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "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": [
      "r206",
      "r207",
      "r208",
      "r240",
      "r628",
      "r693",
      "r701",
      "r704",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r713",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r724",
      "r726",
      "r727",
      "r728",
      "r729",
      "r730",
      "r732",
      "r735",
      "r736",
      "r738",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r752",
      "r808"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "StkPrcOrTsrEstimationMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Price or TSR Estimation Method [Text Block]",
        "terseLabel": "Stock Price or TSR Estimation Method"
       }
      }
     },
     "auth_ref": [
      "r825",
      "r836",
      "r846",
      "r871"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockAppreciationRightsSARSMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesIssuedForServices": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesIssuedForServices",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Restricted stock units issued, Shares",
        "label": "Stock Issued During Period, Shares, Issued for Services",
        "documentation": "Number of shares issued in lieu of cash for services contributed to the entity. Number of shares includes, but is not limited to, shares issued for services contributed by vendors and founders."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share based compensation earned, Shares",
        "label": "Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture",
        "totalLabel": "Shares Issued, Shares, Share-based Payment Arrangement, after Forfeiture, Total",
        "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP)."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r98",
      "r99",
      "r132"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Exercise of stock options, Shares",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r98",
      "r99",
      "r132",
      "r495"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueIssuedForServices": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueIssuedForServices",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted stock units issued",
        "negatedLabel": "Restricted stock units issued",
        "label": "Stock Issued During Period, Value, Issued for Services",
        "documentation": "Value of stock issued in lieu of cash for services contributed to the entity. Value of the stock issued includes, but is not limited to, services contributed by vendors and founders."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueShareBasedCompensation",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share based compensation earned",
        "label": "Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture",
        "totalLabel": "Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total",
        "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP)."
       }
      }
     },
     "auth_ref": [
      "r70",
      "r98",
      "r99",
      "r132"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise of stock options",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r36",
      "r132"
     ]
    },
    "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase of outstanding shares of common stock",
        "label": "Stock Repurchase Program, Remaining Authorized Repurchase Amount",
        "documentation": "Amount remaining of a stock repurchase plan authorized."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock repurchase and retirement, Shares",
        "label": "Stock Repurchased During Period, Shares",
        "verboseLabel": "Repurchase of common stock (in shares)",
        "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r98",
      "r99",
      "r132",
      "r695",
      "r752",
      "r761"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Common stock repurchase and retirement",
        "terseLabel": "Common stock repurchase",
        "label": "Stock Repurchased During Period, Value",
        "verboseLabel": "Repurchase of common stock",
        "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r98",
      "r99",
      "r132",
      "r700",
      "r752",
      "r761",
      "r814"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total CECO shareholders' equity",
        "label": "Equity, Attributable to Parent",
        "periodStartLabel": "Stockholders' Equity Attributable to Parent, Beginning Balance",
        "periodEndLabel": "Stockholders' Equity Attributable to Parent, Ending Balance",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r99",
      "r102",
      "r103",
      "r123",
      "r715",
      "r731",
      "r753",
      "r754",
      "r803",
      "r815",
      "r919",
      "r934",
      "r972",
      "r996"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shareholders\u2019 equity:",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfShareholdersEquityUnaudited",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total shareholders' equity",
        "periodStartLabel": "Beginning Balance",
        "periodEndLabel": "Ending Balance",
        "label": "Equity, Including Portion Attributable to Noncontrolling Interest",
        "documentation": "Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r81",
      "r82",
      "r163",
      "r164",
      "r187",
      "r206",
      "r207",
      "r208",
      "r212",
      "r220",
      "r312",
      "r315",
      "r400",
      "r517",
      "r518",
      "r519",
      "r530",
      "r531",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r560",
      "r563",
      "r575",
      "r576",
      "r580",
      "r588",
      "r684",
      "r685",
      "r698",
      "r715",
      "r731",
      "r753",
      "r754",
      "r762",
      "r814",
      "r919",
      "r934",
      "r972",
      "r996"
     ]
    },
    "us-gaap_SubsegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsegmentsAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsegments [Axis]",
        "documentation": "Information by business subsegments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsegmentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsegmentsDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureBusinessSegmentInformationIntraSegmentAndInterSegmentRevenuesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsegments [Domain]",
        "documentation": "Divisions of a component of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventLineItems",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event [Line Items]",
        "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event."
       }
      }
     },
     "auth_ref": [
      "r581",
      "r595"
     ]
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Member]",
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r581",
      "r595"
     ]
    },
    "us-gaap_SubsequentEventTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTable",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event [Table]",
        "documentation": "Discloses pertinent information about one or more significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued."
       }
      }
     },
     "auth_ref": [
      "r581",
      "r595"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Axis]",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r581",
      "r595"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Domain]",
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r581",
      "r595"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureSubsequentEvents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events",
        "label": "Subsequent Events [Text Block]",
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business."
       }
      }
     },
     "auth_ref": [
      "r594",
      "r596"
     ]
    },
    "srt_SubsidiariesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "SubsidiariesMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign Subsidiaries [Member]",
        "label": "Subsidiaries [Member]"
       }
      }
     },
     "auth_ref": [
      "r964",
      "r975",
      "r976",
      "r978"
     ]
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information [Abstract]",
        "terseLabel": "Cash paid during the period for:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TableTextBlock": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TableTextBlock",
     "lang": {
      "en-us": {
       "role": {
        "label": "Table Text Block [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TabularListTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tabular List [Table Text Block]",
        "terseLabel": "Tabular List, Table"
       }
      }
     },
     "auth_ref": [
      "r865"
     ]
    },
    "us-gaap_TechnologyBasedIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TechnologyBasedIntangibleAssetsMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Technology [Member]",
        "label": "Technology-Based Intangible Assets [Member]",
        "documentation": "Technology-based intangible assets, including, but not limited to, patented technology, unpatented technology, and developed technology rights."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "ceco_TechnologyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "TechnologyMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Technology [Member]",
        "documentation": "Technology [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_TermDebtMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "TermDebtMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term Debt [Member]",
        "label": "Term Debt [Member]",
        "documentation": "Term debt."
       }
      }
     },
     "auth_ref": []
    },
    "srt_TitleOfIndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "TitleOfIndividualAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of Individual",
        "label": "Title of Individual [Axis]"
       }
      }
     },
     "auth_ref": [
      "r929",
      "r977"
     ]
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureShareBasedCompensationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of Individual",
        "label": "Title of Individual [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Shareholder Return Amount",
        "terseLabel": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r857"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TotalShareholderRtnVsPeerGroupTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Shareholder Return Vs Peer Group [Text Block]",
        "terseLabel": "Total Shareholder Return Vs Peer Group"
       }
      }
     },
     "auth_ref": [
      "r864"
     ]
    },
    "us-gaap_TradeAccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TradeAccountsReceivableMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trade Accounts Receivable [Member]",
        "label": "Trade Accounts Receivable [Member]",
        "documentation": "Amount due from customers or clients for goods or services that have been delivered or sold in the normal course of business."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TradeNamesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TradeNamesMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsFiniteLifeDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tradename [Member]",
        "label": "Trade Names [Member]",
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof."
       }
      }
     },
     "auth_ref": [
      "r77"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement [Axis]",
        "terseLabel": "Trading Arrangement:"
       }
      }
     },
     "auth_ref": [
      "r884"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TradingArrByIndTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangements, by Individual [Table]",
        "terseLabel": "Trading Arrangements, by Individual"
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_TranscendSolutionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "TranscendSolutionMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Transcend Solution [Member]",
        "label": "Transcend Solution [Member]",
        "terseLabel": "Transcend Solution [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureContractAssetsAndLiabilitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instruments [Domain]",
        "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms."
       }
      }
     },
     "auth_ref": [
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r393",
      "r399",
      "r561",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r667",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r930",
      "r931",
      "r932",
      "r933"
     ]
    },
    "ceco_TransfersFromIndefiniteLifeClassification": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "TransfersFromIndefiniteLifeClassification",
     "crdr": "debit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureGoodwillAndIntangibleAssetsFiniteLivedIntangibleAssetsAmortizationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Transfers from indefinite life classification",
        "label": "Transfers From Indefinite Life Classification",
        "documentation": "Transfers from indefinite life classification."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Adoption Date",
        "terseLabel": "Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r887"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Duration",
        "terseLabel": "Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r888"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Title",
        "terseLabel": "Title"
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrSecuritiesAggAvailAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Securities Aggregate Available Amount",
        "terseLabel": "Aggregate Available"
       }
      }
     },
     "auth_ref": [
      "r889"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Termination Date",
        "terseLabel": "Termination Date"
       }
      }
     },
     "auth_ref": [
      "r887"
     ]
    },
    "us-gaap_TreasuryStockCommonShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TreasuryStockCommonShares",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnauditedParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Treasury stock, shares",
        "label": "Treasury Stock, Common, Shares",
        "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r61"
     ]
    },
    "us-gaap_TypeOfArrangementAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TypeOfArrangementAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative Arrangement and Arrangement Other than Collaborative",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]",
        "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r546"
     ]
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "UndrlygSecurityMktPriceChngPct",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Underlying Security Market Price Change, Percent",
        "terseLabel": "Underlying Security Market Price Change"
       }
      }
     },
     "auth_ref": [
      "r883"
     ]
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable Rate [Axis]",
        "documentation": "Information by type of variable rate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VariableRateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateDomain",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable Rate [Domain]",
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index."
       }
      }
     },
     "auth_ref": []
    },
    "ceco_VotingInterestInJointVenture": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "VotingInterestInJointVenture",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Voting Interest In Joint Venture",
        "documentation": "Voting interest in joint venture.",
        "terseLabel": "Voting interest in joint venture"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WarehouseAgreementBorrowings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WarehouseAgreementBorrowings",
     "crdr": "credit",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureSeniorDebtSummaryOfDebtDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Warehouse Agreement Borrowings, Total",
        "label": "Warehouse Agreement Borrowings",
        "terseLabel": "Outstanding borrowing under the joint venture term debt",
        "documentation": "Carrying value as of the balance sheet date of the outstanding short-term borrowings under a revolving line of credit used by mortgage bankers to finance the origination or purchase of loans."
       }
      }
     },
     "auth_ref": [
      "r142"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Diluted weighted-average shares outstanding",
        "terseLabel": "Diluted",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "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": [
      "r227",
      "r235"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average number of common shares outstanding:",
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfIncomeUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basic weighted-average shares outstanding",
        "terseLabel": "Basic",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Basic, Total",
        "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": [
      "r226",
      "r235"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Denominator",
        "label": "Weighted Average Number of Shares Outstanding Reconciliation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ceco_WesternAirDuctsLtdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.cecoenviro.com/20240630",
     "localname": "WesternAirDuctsLtdMember",
     "presentation": [
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsScheduleOfEstimatedFairValuesOfAssetsAcquiredAndLiabilitiesAssumedParentheticalDetail",
      "http://www.cecoenviro.com/20240630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Western Air Ducts Ltd [Member]",
        "label": "Western Air Ducts Ltd [Member]"
       }
      }
     },
     "auth_ref": []
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "15",
   "Paragraph": "12",
   "Subparagraph": "(f)(2)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481410/810-10-15-12"
  },
  "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": "25",
   "Paragraph": "16",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479405/805-10-25-16"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479613/805-30-35-1"
  },
  "r4": {
   "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"
  },
  "r5": {
   "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"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-20"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(g)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25"
  },
  "r9": {
   "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"
  },
  "r10": {
   "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"
  },
  "r11": {
   "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"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "470",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481544/470-10-50-1"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "20",
   "Topic": "715",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r15": {
   "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"
  },
  "r16": {
   "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"
  },
  "r17": {
   "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"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2A"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "e",
   "SubTopic": "470",
   "Topic": "942",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13",
   "SubTopic": "20",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-13"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r22": {
   "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"
  },
  "r23": {
   "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"
  },
  "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.19(a))",
   "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.19(a),20,24)",
   "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": "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"
  },
  "r27": {
   "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)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r28": {
   "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-26)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r29": {
   "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.20)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r30": {
   "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"
  },
  "r31": {
   "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(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r32": {
   "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(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r33": {
   "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"
  },
  "r34": {
   "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"
  },
  "r35": {
   "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"
  },
  "r36": {
   "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"
  },
  "r37": {
   "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.3,4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r38": {
   "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.31)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r39": {
   "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"
  },
  "r40": {
   "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"
  },
  "r41": {
   "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"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r45": {
   "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"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2"
  },
  "r47": {
   "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"
  },
  "r48": {
   "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"
  },
  "r49": {
   "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"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "330",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB TOPIC 5.BB)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480581/330-10-S99-2"
  },
  "r54": {
   "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"
  },
  "r55": {
   "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"
  },
  "r56": {
   "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"
  },
  "r57": {
   "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"
  },
  "r58": {
   "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"
  },
  "r59": {
   "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"
  },
  "r60": {
   "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"
  },
  "r61": {
   "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"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "710",
   "SubTopic": "10",
   "Section": "25",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483070/710-10-25-15"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "710",
   "SubTopic": "10",
   "Section": "30",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483043/710-10-30-2"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "715",
   "SubTopic": "20",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480535/715-20-45-2"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "715",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "715",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-2"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "715",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-3"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "715",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-4"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "715",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-17"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-8"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-3"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "37",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479303/805-10-55-37"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-20"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "30",
   "Section": "25",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479668/805-30-25-6"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-15"
  },
  "r81": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-16"
  },
  "r82": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "4I",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4I"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "4J",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4J"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-3"
  },
  "r88": {
   "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"
  },
  "r89": {
   "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.15(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r90": {
   "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.15)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r91": {
   "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"
  },
  "r92": {
   "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"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "205",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//205/tableOfContent"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r98": {
   "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"
  },
  "r99": {
   "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"
  },
  "r100": {
   "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"
  },
  "r101": {
   "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"
  },
  "r102": {
   "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"
  },
  "r103": {
   "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"
  },
  "r104": {
   "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"
  },
  "r105": {
   "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"
  },
  "r106": {
   "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"
  },
  "r107": {
   "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"
  },
  "r108": {
   "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"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-03(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-1"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r111": {
   "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"
  },
  "r112": {
   "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"
  },
  "r113": {
   "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"
  },
  "r114": {
   "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"
  },
  "r115": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r116": {
   "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.8)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r117": {
   "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"
  },
  "r118": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r119": {
   "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"
  },
  "r120": {
   "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"
  },
  "r121": {
   "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"
  },
  "r122": {
   "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"
  },
  "r123": {
   "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"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//350/tableOfContent"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r126": {
   "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"
  },
  "r127": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r128": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//440/tableOfContent"
  },
  "r129": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//470/tableOfContent"
  },
  "r130": {
   "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"
  },
  "r131": {
   "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"
  },
  "r132": {
   "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"
  },
  "r133": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480535/715-20-45-3"
  },
  "r134": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "715",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r135": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r136": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//805/tableOfContent"
  },
  "r137": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//810/tableOfContent"
  },
  "r138": {
   "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"
  },
  "r139": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A"
  },
  "r140": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r141": {
   "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"
  },
  "r142": {
   "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(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r143": {
   "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(15)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r144": {
   "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(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r145": {
   "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(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r146": {
   "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"
  },
  "r147": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r148": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r149": {
   "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"
  },
  "r150": {
   "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(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r151": {
   "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"
  },
  "r152": {
   "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"
  },
  "r153": {
   "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.13(h))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r154": {
   "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.9)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r155": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H"
  },
  "r156": {
   "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"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r158": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "SubTopic": "20",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2"
  },
  "r159": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "SubTopic": "20",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2"
  },
  "r160": {
   "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"
  },
  "r161": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.22(a)(2))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r162": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "250",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//250/tableOfContent"
  },
  "r163": {
   "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"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r165": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r166": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-1"
  },
  "r167": {
   "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"
  },
  "r168": {
   "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"
  },
  "r169": {
   "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"
  },
  "r170": {
   "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"
  },
  "r171": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r172": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "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"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "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"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(210.5-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r191": {
   "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"
  },
  "r192": {
   "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"
  },
  "r193": {
   "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(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-17"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-2"
  },
  "r196": {
   "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"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2"
  },
  "r199": {
   "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"
  },
  "r200": {
   "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"
  },
  "r201": {
   "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"
  },
  "r202": {
   "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"
  },
  "r203": {
   "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(m)(1)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r204": {
   "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(m)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "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"
  },
  "r208": {
   "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"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r211": {
   "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"
  },
  "r212": {
   "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"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r215": {
   "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"
  },
  "r216": {
   "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"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "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"
  },
  "r220": {
   "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"
  },
  "r221": {
   "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"
  },
  "r222": {
   "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"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-5"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-6"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//260/tableOfContent"
  },
  "r226": {
   "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"
  },
  "r227": {
   "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"
  },
  "r228": {
   "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"
  },
  "r229": {
   "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"
  },
  "r230": {
   "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"
  },
  "r231": {
   "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"
  },
  "r232": {
   "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"
  },
  "r233": {
   "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"
  },
  "r234": {
   "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"
  },
  "r235": {
   "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"
  },
  "r236": {
   "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"
  },
  "r237": {
   "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"
  },
  "r238": {
   "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"
  },
  "r239": {
   "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"
  },
  "r240": {
   "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"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//280/tableOfContent"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-15"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21"
  },
  "r245": {
   "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"
  },
  "r246": {
   "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"
  },
  "r247": {
   "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"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r251": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r253": {
   "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"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-25"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-25"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-26"
  },
  "r258": {
   "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"
  },
  "r259": {
   "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"
  },
  "r260": {
   "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"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31"
  },
  "r263": {
   "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"
  },
  "r264": {
   "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"
  },
  "r265": {
   "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"
  },
  "r266": {
   "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"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r268": {
   "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"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-34"
  },
  "r270": {
   "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"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r272": {
   "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"
  },
  "r273": {
   "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"
  },
  "r274": {
   "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"
  },
  "r275": {
   "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"
  },
  "r276": {
   "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"
  },
  "r277": {
   "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"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r315": {
   "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"
  },
  "r316": {
   "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"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-11"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-14"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-16"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-5"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-7"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-9"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//330/tableOfContent"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483080/330-10-50-2"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-1"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-1"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r347": {
   "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"
  },
  "r348": {
   "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"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-1"
  },
  "r350": {
   "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"
  },
  "r351": {
   "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"
  },
  "r352": {
   "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"
  },
  "r353": {
   "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"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-3"
  },
  "r355": {
   "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"
  },
  "r356": {
   "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"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r358": {
   "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"
  },
  "r359": {
   "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"
  },
  "r360": {
   "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"
  },
  "r361": {
   "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"
  },
  "r362": {
   "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"
  },
  "r363": {
   "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"
  },
  "r364": {
   "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"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r366": {
   "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"
  },
  "r367": {
   "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"
  },
  "r368": {
   "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"
  },
  "r369": {
   "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"
  },
  "r370": {
   "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"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "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"
  },
  "r374": {
   "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"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "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"
  },
  "r382": {
   "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"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "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"
  },
  "r387": {
   "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"
  },
  "r388": {
   "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"
  },
  "r389": {
   "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"
  },
  "r390": {
   "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"
  },
  "r391": {
   "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"
  },
  "r392": {
   "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"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-4"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-6"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18"
  },
  "r400": {
   "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"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "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"
  },
  "r404": {
   "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"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//715/tableOfContent"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480535/715-20-45-2"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480535/715-20-45-3A"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(10)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(8)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(9)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r422": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r424": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(8)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r431": {
   "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"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(k)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(k)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(k)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-2"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-8"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480126/715-20-S99-2"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480266/715-60-50-3"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480794/715-70-50-1"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480606/715-80-35-1"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11"
  },
  "r479": {
   "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"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-9"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//718/tableOfContent"
  },
  "r483": {
   "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"
  },
  "r484": {
   "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"
  },
  "r485": {
   "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"
  },
  "r486": {
   "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"
  },
  "r487": {
   "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"
  },
  "r488": {
   "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"
  },
  "r489": {
   "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"
  },
  "r490": {
   "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"
  },
  "r491": {
   "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"
  },
  "r492": {
   "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"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "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"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r500": {
   "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"
  },
  "r501": {
   "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"
  },
  "r502": {
   "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"
  },
  "r503": {
   "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"
  },
  "r504": {
   "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"
  },
  "r505": {
   "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"
  },
  "r506": {
   "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"
  },
  "r507": {
   "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"
  },
  "r508": {
   "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"
  },
  "r509": {
   "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"
  },
  "r510": {
   "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"
  },
  "r511": {
   "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"
  },
  "r512": {
   "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"
  },
  "r513": {
   "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"
  },
  "r514": {
   "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"
  },
  "r515": {
   "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"
  },
  "r516": {
   "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"
  },
  "r517": {
   "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"
  },
  "r518": {
   "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"
  },
  "r519": {
   "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"
  },
  "r520": {
   "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"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//740/tableOfContent"
  },
  "r522": {
   "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"
  },
  "r523": {
   "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"
  },
  "r524": {
   "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"
  },
  "r525": {
   "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"
  },
  "r526": {
   "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"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r528": {
   "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"
  },
  "r529": {
   "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"
  },
  "r530": {
   "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"
  },
  "r531": {
   "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"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r535": {
   "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"
  },
  "r536": {
   "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"
  },
  "r537": {
   "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.Fact.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r538": {
   "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.Fact.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r539": {
   "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"
  },
  "r540": {
   "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"
  },
  "r541": {
   "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"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-4"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "808",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479402/808-10-50-1"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r548": {
   "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"
  },
  "r549": {
   "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"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A"
  },
  "r552": {
   "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"
  },
  "r553": {
   "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"
  },
  "r554": {
   "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"
  },
  "r555": {
   "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"
  },
  "r556": {
   "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"
  },
  "r557": {
   "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"
  },
  "r558": {
   "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"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r560": {
   "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"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480237/815-40-50-5"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r563": {
   "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"
  },
  "r564": {
   "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"
  },
  "r565": {
   "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"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-10"
  },
  "r570": {
   "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"
  },
  "r571": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r574": {
   "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"
  },
  "r575": {
   "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"
  },
  "r576": {
   "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"
  },
  "r577": {
   "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"
  },
  "r578": {
   "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"
  },
  "r579": {
   "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"
  },
  "r580": {
   "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"
  },
  "r581": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-2"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483013/835-20-50-1"
  },
  "r583": {
   "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"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5"
  },
  "r586": {
   "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"
  },
  "r587": {
   "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"
  },
  "r588": {
   "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"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481435/852-10-45-14"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//855/tableOfContent"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r603": {
   "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"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481444/860-30-45-1"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481420/860-30-50-7"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(4)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r627": {
   "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"
  },
  "r628": {
   "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"
  },
  "r629": {
   "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"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r633": {
   "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"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "35A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "35A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r647": {
   "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"
  },
  "r648": {
   "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"
  },
  "r649": {
   "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"
  },
  "r650": {
   "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"
  },
  "r651": {
   "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(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r653": {
   "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"
  },
  "r654": {
   "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"
  },
  "r655": {
   "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"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r657": {
   "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"
  },
  "r658": {
   "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"
  },
  "r659": {
   "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"
  },
  "r660": {
   "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)(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r661": {
   "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"
  },
  "r662": {
   "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"
  },
  "r663": {
   "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"
  },
  "r664": {
   "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(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r665": {
   "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(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r666": {
   "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"
  },
  "r667": {
   "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(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r668": {
   "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"
  },
  "r669": {
   "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"
  },
  "r670": {
   "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"
  },
  "r671": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r672": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-1"
  },
  "r682": {
   "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"
  },
  "r683": {
   "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"
  },
  "r684": {
   "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"
  },
  "r685": {
   "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"
  },
  "r686": {
   "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"
  },
  "r687": {
   "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"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r690": {
   "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"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480424/946-10-50-1"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480424/946-10-50-2"
  },
  "r693": {
   "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"
  },
  "r694": {
   "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(i)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r695": {
   "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(i)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r696": {
   "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"
  },
  "r697": {
   "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"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-3"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-3"
  },
  "r700": {
   "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"
  },
  "r701": {
   "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"
  },
  "r702": {
   "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"
  },
  "r703": {
   "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"
  },
  "r704": {
   "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"
  },
  "r705": {
   "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(10)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r706": {
   "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"
  },
  "r707": {
   "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"
  },
  "r708": {
   "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"
  },
  "r709": {
   "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"
  },
  "r710": {
   "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"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r712": {
   "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"
  },
  "r713": {
   "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"
  },
  "r714": {
   "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"
  },
  "r715": {
   "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"
  },
  "r716": {
   "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"
  },
  "r717": {
   "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"
  },
  "r718": {
   "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"
  },
  "r719": {
   "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"
  },
  "r720": {
   "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"
  },
  "r721": {
   "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"
  },
  "r722": {
   "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"
  },
  "r723": {
   "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"
  },
  "r724": {
   "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"
  },
  "r725": {
   "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"
  },
  "r726": {
   "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"
  },
  "r727": {
   "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"
  },
  "r728": {
   "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"
  },
  "r729": {
   "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"
  },
  "r730": {
   "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"
  },
  "r731": {
   "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"
  },
  "r732": {
   "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"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-6"
  },
  "r734": {
   "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"
  },
  "r735": {
   "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"
  },
  "r736": {
   "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"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r738": {
   "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"
  },
  "r739": {
   "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"
  },
  "r740": {
   "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"
  },
  "r741": {
   "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"
  },
  "r742": {
   "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"
  },
  "r743": {
   "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"
  },
  "r744": {
   "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"
  },
  "r745": {
   "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"
  },
  "r746": {
   "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"
  },
  "r747": {
   "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"
  },
  "r748": {
   "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"
  },
  "r749": {
   "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"
  },
  "r750": {
   "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"
  },
  "r751": {
   "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"
  },
  "r752": {
   "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"
  },
  "r753": {
   "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"
  },
  "r754": {
   "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"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r756": {
   "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"
  },
  "r757": {
   "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"
  },
  "r758": {
   "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"
  },
  "r759": {
   "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"
  },
  "r760": {
   "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"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-3"
  },
  "r763": {
   "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"
  },
  "r764": {
   "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 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r765": {
   "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"
  },
  "r766": {
   "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"
  },
  "r767": {
   "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"
  },
  "r768": {
   "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"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r770": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r771": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-16"
  },
  "r772": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-21"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-22"
  },
  "r774": {
   "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"
  },
  "r775": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r776": {
   "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"
  },
  "r777": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "48",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482785/280-10-55-48"
  },
  "r778": {
   "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"
  },
  "r779": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479081/326-30-55-8"
  },
  "r780": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482955/340-10-05-5"
  },
  "r781": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482548/350-20-55-24"
  },
  "r782": {
   "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"
  },
  "r783": {
   "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"
  },
  "r784": {
   "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"
  },
  "r785": {
   "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"
  },
  "r786": {
   "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"
  },
  "r787": {
   "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"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-17"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-18"
  },
  "r792": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11"
  },
  "r793": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6"
  },
  "r796": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6"
  },
  "r797": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6"
  },
  "r798": {
   "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"
  },
  "r799": {
   "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"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4J",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4J"
  },
  "r801": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4K",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4K"
  },
  "r802": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479619/842-30-55-16"
  },
  "r803": {
   "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"
  },
  "r804": {
   "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"
  },
  "r805": {
   "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"
  },
  "r806": {
   "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"
  },
  "r807": {
   "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"
  },
  "r808": {
   "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"
  },
  "r809": {
   "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"
  },
  "r810": {
   "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"
  },
  "r811": {
   "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"
  },
  "r812": {
   "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"
  },
  "r813": {
   "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"
  },
  "r814": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11"
  },
  "r815": {
   "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"
  },
  "r816": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r817": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r818": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r819": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r820": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r821": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r822": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r823": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r824": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r825": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r826": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r827": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r828": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r829": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r830": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r831": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii",
   "Section": "6"
  },
  "r832": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r833": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r834": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r835": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r836": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r837": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r838": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r839": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r840": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r841": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r842": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r844": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r845": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r846": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r847": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r848": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r849": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r850": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r851": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r852": {
   "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"
  },
  "r853": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r854": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r855": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r856": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r857": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r858": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r859": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r860": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r861": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r864": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r865": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r867": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r871": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r874": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r875": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r876": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r877": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r878": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r879": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "A"
  },
  "r880": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "C"
  },
  "r881": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "D"
  },
  "r882": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "E"
  },
  "r883": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "F"
  },
  "r884": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r885": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r886": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r887": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r888": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r889": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r890": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r891": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r892": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-10"
  },
  "r893": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-3"
  },
  "r894": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r895": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(3)",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r896": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4H",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H"
  },
  "r897": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r898": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r899": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r900": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r901": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(i)",
   "Publisher": "SEC"
  },
  "r902": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(ii)",
   "Publisher": "SEC"
  },
  "r903": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(iii)",
   "Publisher": "SEC"
  },
  "r904": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r905": {
   "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)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r906": {
   "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"
  },
  "r907": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r908": {
   "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)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r909": {
   "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"
  },
  "r910": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r911": {
   "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"
  },
  "r912": {
   "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"
  },
  "r913": {
   "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"
  },
  "r914": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r915": {
   "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"
  },
  "r916": {
   "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"
  },
  "r917": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8"
  },
  "r918": {
   "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"
  },
  "r919": {
   "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"
  },
  "r920": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r921": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3"
  },
  "r922": {
   "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"
  },
  "r923": {
   "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"
  },
  "r924": {
   "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"
  },
  "r925": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r926": {
   "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"
  },
  "r927": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-15"
  },
  "r928": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//310-10/tableOfContent"
  },
  "r929": {
   "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"
  },
  "r930": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-9"
  },
  "r931": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r932": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r933": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r934": {
   "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"
  },
  "r935": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r936": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r937": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r938": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r939": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r940": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r941": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r942": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r943": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r944": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r945": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A"
  },
  "r946": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2"
  },
  "r947": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-3"
  },
  "r948": {
   "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"
  },
  "r949": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482047/420-10-45-3"
  },
  "r950": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//450/tableOfContent"
  },
  "r951": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4"
  },
  "r952": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r953": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-3"
  },
  "r954": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r955": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r956": {
   "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)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r957": {
   "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"
  },
  "r958": {
   "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"
  },
  "r959": {
   "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)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r960": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r961": {
   "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"
  },
  "r962": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r963": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r964": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r965": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r966": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-6"
  },
  "r967": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r968": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480682/815-20-25-6A"
  },
  "r969": {
   "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"
  },
  "r970": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r971": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r972": {
   "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"
  },
  "r973": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481956/830-20-45-1"
  },
  "r974": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481926/830-20-50-1"
  },
  "r975": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r976": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r977": {
   "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"
  },
  "r978": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3"
  },
  "r979": {
   "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"
  },
  "r980": {
   "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"
  },
  "r981": {
   "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"
  },
  "r982": {
   "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"
  },
  "r983": {
   "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"
  },
  "r984": {
   "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"
  },
  "r985": {
   "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"
  },
  "r986": {
   "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"
  },
  "r987": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r988": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r989": {
   "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"
  },
  "r990": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-15"
  },
  "r991": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-16"
  },
  "r992": {
   "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"
  },
  "r993": {
   "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"
  },
  "r994": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3"
  },
  "r995": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r996": {
   "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"
  },
  "r997": {
   "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>84
<FILENAME>0000950170-24-087850-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000950170-24-087850-xbrl.zip
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
M-')@/#:OXO+$*/8J<E.<PUM\Q9![9S_=O17E[5A=3L#&>:DHV'!$H@"/!N.
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
MG'\E('>=F&X_$AO'^8>C26RN\_UE5>UYE9N2S_NYA?OWU7QZ'G]UD%3/XU<
M2?N!V.B!Z'E\S^-7 G+7B;WV(U'H2%POD$G?P=?L^XO8>J@;/VT:X,KOX-/!
M>5,WCQ-J;ZMETNWJM\O&7)X7]_RR36WD?/>B73GV_HF-9[H^.PDTWW,8F^E@
M%IY_W6XOA@L]3=]@FDYQS]/7'BG[@5CQ@>AY>L_35P)R>W;:C\0C\W3V[A_Y
M*/IZ F3V0\Q_#.:_9](^&#731^/I;+OZZY7&M)3[KY\:U#+VW*!\>*]UH^D$
M:/WXCSBI#NOFCYZ&;S -[\/EZP^$_4"L^$#T-+RGX2L!N3WY[$?BD6DXSVDJ
MD_%HT+P['8]\#)GD/AKQYMOMN=SY]2WI?G/9A)Y5;S"KUCVK7GM<ZP=BQ0>B
M9]4]JUX)R"V52[ZQXTEU<%"UB0'D\:N E3HNZ\2Q3T'&[^KZW6C\KAZFT?BD
MI<>/P:]?3X[CN#KX]-*>46\NHV9]NLCZHU@_$"L^$#VC[AGU2D!NSQS[D7CD
M.#5Y-XCO[6 6I(ZY48\7I2;;U<O\\EEX>O;RGDWW;+IGTVN,9_U K/A ]&RZ
M9],K ;D]A^Q'XK'9M'TWKIL_WB7K)Z/Q(S+IW>TV9[IZ,7MQSZ)[%MVSZ#7&
ML7X@5GP@>A;=L^B5@-R>._8C\<@LFKZ;#L?Q?=T  .22WG80YR?ZO&NBGX[K
MR6.6&OG]2F.JH]R87"_DXOB>HUE[ZCA+M/Z]B?GB14"[Y^$]#^]Y^#HC83\0
M*SX0/0_O>?A*0&[//ON1>&0>SMZ%F&PND/=N>CH: O<>UJ/QG(+7C[B?D6U7
MSR^:4OT.30':G9MRA7WW3+MGVCW37F.LZP=BQ0>B9]H]TUX)R.WY93\2C\RT
M^3OH:GS7V!0GYY=U^AZY8LAO<%-UU#;A:F6^GEGWS+IGUFN,;?U K/A ],RZ
M9]8K ;D]G^Q'XI&9M5A"B9"64(OMJB\5TE/IGDIO$ICU ['B ]%3Z9Y*KP3D
M]@2R'XE'IM+R73P[KEW]. >LMR1:;E?[%^_LN?,&<V?2<^>U1Z]^(%9\('KN
MW'/G3B$7GI';\/,3]F0%.5,#G]K)8RWB'UV^K2=*&TR4Z-?4%OZU;A#;7XN0
M]:=W&WCU5]]VUUG1]^U1^]:^N[/.A?I#Y0>V:;(BOX]H. IQ_AUH5[X\[_T@
MGJ%0CZ-O\1%49GHR?!;JYG1@SW?RU4L-G_=T6]2SYEQ8++S-X8._3YM)G<[G
M;VF_BN(P/'.CL]Q%> ) QAC@%QYT=D<\(/1;HW*[$#X!SW=B0@="N>YFP7!?
M_,RR.1Y_PE@0S<QBVP1MW;&#C_:\>?;DZ:40;T3C+\8_?_"085[-B?YI2!?9
MQ7M/H]NI1P>#4>WM[[VN]E_]Y\'AZU>_[;]ZN_NRVGM]^&:[VGWUO#KZ_=>C
M@^<'NX<'^T??#WL/4;K9A*CJD.=L/EGB7:J'=NAK.[C;XO%7E?+C;,*[T2!T
M8!;>[!Z^K2Y/-ZE>'+S:?;4W'Z[E-^\ 1'KPZL7KP]]VWQZ\?E6V^5HQT]Q.
MT(NRS9\F:#.Q\!$T["N.QF-.@+?[OU5D^W^5.#&/WNY"ZP!W;L67=LQKP#S@
M HB0;<[)GR^I1)8"R'2;2O7GS^%PY>W28UFD=A)#.V"(FQCR,9G-:% 'F,/A
MG;,#F-3Q77,<8\?3^=X#M??ZU?/]5T?[S\%2O3IZ_?+@^6[WD_K>K7L+[?IU
M]R5HVGYU]&_[^[?/[$<C&8\Z8UN/=O[FBZ:V:FJGD]&S"TJ9VY(9)C0^WX[
M1QA-@>O79S$\F[V*8+R-_SS_ @AS8$^;N--$X ,P->>C, L7M,]^\GDD[$/=
MU*X>U)/SG?GW;UA F+U.\FVNV)\O./,--P#RT*]=_MHUOLWX5Y^]]/=^)9"H
M%[9T<W,@Z&970R\W!O\%4MRF$S_4PVIR/)HV=AB:K2J>^7@ZJ4XCC.JQ'<<*
M8-7^^)V!^Z4-3)?QP,O8,7WR]6Y>>IWS* &,7VN0JKF$;FCU @?F8?[_G>;,
M=&BG 9X0?OS)C9_^\N_38:P8WJHHIOQ^<^4K@SC37,R*&,8%1)Q[Y=DHY7D>
M?3QQ@*^,M K#>H59R,*AAR%(_O$,_K*SR.X\ 7>/CJZ3_ >CTLJL\=T9ELI8
MQWLT8[-AW>UG\5J*=:VZNYPL\S+2.AZ0O[ W'8_AM\HV39PT.ST^;(S";!@^
M]+-X0\6Z5MV]OUMW1X-V=36N?>*-#?^&V;NZ*M ^Y.I3\6.MXSW$*MKFN#U=
MP.=?\D$('^P@K_=^:PK>9;36 VYN>.1P5%9WKT^ V_KYSQW*M RL><#$_ZD^
M S$.7XQMF^;7KAR_>.<=ES%:A9RW%G'C'=*<&A2(,)@1FJ203ZKV*6>3PYR+
MO?=.)6*"5@SA: WB0@EDJ,*($1$ D:33Q#RIAO8$&CQMT'MK3W>RVNT.0_YG
M_Y/.[4[V['A\7@_?_Z<=3..3:CJL9V_Y_=WO1\_!VH$<8INS'J*O3^R@^?D)
M@K]F640_/ZG/)CO#Z0D*HS;/*M_QY!<FMT2.)5[O\"^K/-^[T^0>NGKH6@_H
M2IZ;X+E&5$0!T.4HLCQ$E'Q2UD89K+:?0U>2@0GB$]+P+^):&/A-$F0\PUA'
MIETBRX0NP;>4,AL.7?>/]_1,^#NTZC VDW'M)W'&A7LCLM9*U=N.J[8C"I^8
M$!A)ZSGB 2=DE1;(4:F(5S@J0KN@O9]T+)N/BXAL5S37D TW%#T\;;HHUQ2>
M$M>66L>1LCPB3HE$SAF)L(3_E"+"FB_@Z3[4=I'P)&7/8_N([B/PV%WO80PG
M336./H)[Y@9QJQK&264'@]''O 6B/6/VTJ->J.82<-\TT>"*&@+$@A&#;-(>
M&:NHHDPF3'D7Q&)WWK<7H_'ST=1-TG0P'XC#RW'H6*.WA*:WZG1'PSI3IQR@
M?QR!8>XH52XAIQ/ )G88.1L=2L8Y+4&43NHNH'8Y N,2/PB$>R:U<E:G9U+7
MU)LR+GQ0B,L<)&3>(ZVI1"2 UG.FA(JN$SS^0I5?Q4FWVDRHW#**;SBIZI%J
MTT6YIDBEF$J*6H*$YS2OQ&H@%2JAJ R)4@9#3>B$B#P"4A&ZI=BFK\#VRQB/
MD] S:L#WRPY#;"8P__)Z1K3C83U\WU3UL-W&V;0>H*L'@_93T+GIT(].3@>Q
M7?V 9^4IVJ< K;="]O;F6J0B2N\3&!@9"$/<4Y:#%!CLC;.2>$*<])UD_EQH
MUW_5D^.]:0.]C>/=G)+>N=D18HLIO>%6I\>K31?EFN(5B\12(1@2VF/@Q\(A
MJY1#-(88<#1>"=9)NL^CX9646V+C_?E^D>116/+!\ /\,AK7L6D71WK3L=9:
MU9N.JZ;#),J)R8PUY23WH#72DD3$6'*86&^4-5U0W;F2G8.IZ"K)1V]Q)3;<
M1O3 M.FB7%-@<M%J[75>=[8!\;SN;)SAB !QC9;;C$!=<-I% !/?PKK/\.E#
MO(] 7M^,XZFM0Q7/3G.=TUFT=]0>".RO%3GHC<=:JUMO/*X:#TF,XTY0%##-
M 1$'QH,(H*G*)2>UBB2D+ECMA?;MSY1O=QC:H[C;D$C3;4"$XBU.-CT@TN/5
MIHMR3?%*8:F$)A1%(A.XXCIG6F*-HF,!2Q=T4J0+LOMX>$7(ENJSW/L [F-R
MX#HG+L1J8L]B3W?OK5G?KK6[$KIW3V%_5Z7A=3)!P1 7J)9(4PKF)&3*K+T'
M.Q228H$KGD2'E/EM5M*NXBU;E"PP#GR7&LKKK!(]_O7XM_[XIP*-&I/4;G\
M+',666#=*'FL& \B&-LE!>\2_S1=8&!@;=#O40/2M LR3E>1C+\=3>R@CSUO
MDIO;QW*N&A+*I!9$:,08)XAG&^*<5\A1H@@P8NM5)\G#"XDR:[+%U,/VQ6[L
M?.ZA:6U$N:;0Y'%RS,:(K, 8<2(DLC@!N=%.42^\BZJ;?70+@B;.U(9#T\(C
MRO?AK.63TC?CT2GTX7RK.AW83$OSEKA_3.O3?)QQG_2[_GK3VX%K%#71R"@0
M4ZZC0UPEC@QA!B62F%3> ;!_$>NX7ZQWIG9OLM+M#L/^7.4ZS+7#6]3TA+4'
MJLT6Y9H"%<<V.@ DQ*P'M/+ .S76$GD=0E!::'!6NPG*+ARHJ-RB/7U== QV
M/>GK81XA-$IHVL2+D&J5QJ.3*L]:.ZF'[ZM!M$V?];#FZM,;AVM;USCAIBTE
MZ;@$%DLUL@$K1(72.9>!8--)DN_KN9*]S#K6ZN+K]'L3VRA'5^ER?(MLO'7H
MD6K31;FF2.4T@!-+&A$3><XM '^;ZP#M)5@8;CVU7U2^O0^-?12D AXKY(8C
M51^&O9=V_&4T"A_KP: '_[76CA[\KY79%<8X#O ML/1 4P-#1LN(I(_<"BP2
M_7+1[3XT=:Y<7<4K"-DBO-]QUJ/29HMR35$I86Z2803A@'TN_N*03AX )SCB
MJ"?$LD[**RP E1CMZ6<?1KU7H:^)';ZOW> RB/HO?](PHYY5J8;)&:M!G6*?
M#;#^^M.;@FL[OV((*8(!D%+G:K?<( =J@6(@21-'%&>=[/QZT2K9R_I##)\T
M<98JUMTR&Y=;6&^Z?>BA:M-%N:90A96 @2(8&28!=B) E34\Y"Q[YRT.3-E.
M\@$>!:H$WN)RT\\I[2.I'5/9O%7L"IWMS<-:JT]O'JZOLR6:"(DH<>"B/.J
M-(\1144)C5Z%(&TWQ6SG.G:CB=@_\X-IJ(?O.PY^F"U!;S]DLI_P9?6MQZX>
MN[X#NR(C1%-J493 53D)(M=?<8@J!5R7)>/5%]E,]ZMWNRSLVOA]I7W8]E[Z
M\CRF.!['OK[7!JE*;QNNE;-55 9O/"*6.\1M\LAZ;)&,0C$;F-0Q=L%KYYIV
MT"K:6WO6=<B#RDT_^;+'J$T7Y9IBE+=8.B4I<HE*Q"G DPO@@$=NJ XF*.,[
MJ2VP<(QB>-.3GOJ8[,-XJC^&=UX[BJ$O@]779+R_L#>V)J,.V!E*'!)6!; I
M7B++K4/!1T>2-8X&W27O;<_+OEX5O:NUOBU&%[C4MS9%&GLX[.&PA\/;LA^L
M($$0@K#!"?'H.7(L.)0$#L)A1PS[ @X?0K$7!X=\2^$%1H/7!@[[FK6/6+.V
M)^E=:AW=IEGMPFB:DU26:)>NSXO;QN*?%V:@;AZ(-351AEBC'-:(&?C!I;7(
M)$U1X,E8R6W"MI,,C&[)N=%;A"TP,OW5";%:%JF'PAX*>RB\$Q3Z:+&, 05#
M,.*>,:0!'1$#GNYU=(K@+TY6OW^QW8Z@4.)<3_'1(A4K#87W#Y/?-+GNRMB+
MP=<[*$S[MH^S(7&C0;A5@UX>[/YZ\/+@[<'^4;7[ZGEU]&^[A_O_]OKE\_W#
MHS:Q63VK]O_Z^\';OWUK(A8S/%V:'QCJ?.7G)_3)U_M9!I0NP/+VW>UG\;J*
M=:VZ>_^(58=&<?76CB_.2J@&M77UH)[4L=GI06)CM&;#0**?Q1LJUK7J;G^Z
M]Z.:QM/1N(VNC%(5HNM+M*Q2#N+C!Q[+0)H%E.V2TJ1$D$Q&(1XX1L8KBAQ5
MCG'.G76=[ 1X.1J^?QO')\]!T[H]QXO@+:$W?2=8#U2%BK('JJZV+&$G>(P"
M88 E "J2D%/<(9*L"\D)Y>,7"\'W6?U8*%!QK3<<J!XU 6ES.>ZN]S"&DZ8Z
MM>?6#?JJ+>NM5;VIN'X:(0_")8$2YW9V&J$S4B&A--6)8NIH-SE#%TKV9J9C
MW5H+@[=,7RV[AZ@-%^6:0A1)A$LF+(H\@=O-$D6:68$D)S$Z):R3OI-<GD5"
ME%9;<I&I/2LQK_N@[6,1VO$TABJ>G<9A?S#ANFM5;RVN%=0.4;F@"5*,),0Y
M]\@J(Y"VPOE (DN)=41HLY*]_)0ST*W!X'Q+L;Z6=H]2FRW*-44I TZV#=@@
M:X#8<A>!GYI@D/1)!2YU,KB3@H./@%(,][2VC],^ JW]M1X,ZN'[IJJ'0&U]
M;)J<CN#S/NFVVDML)C I)YGXVO&PO1/T;9I+%9T.8OX\/RM/T9X1K[="]K;F
M6OQ$!RV<"<@8+!%G5"'+/4=*60&6PQ"F:!>,>.]"N_ZKGASO31OH;1S/#<]Y
MMV9'F"TM-MWL]("UZ:)<4\ *5 ?O+$'$6H>XL>"]"YZ0I51R9X/5H1-R_)B
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
M/%!3'I\OZR#^7]BI2>-!Q+!:++<;<AV.0W-HA?@BXR9XH4.U9S6O6W"E H.
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
M5Q/760M!QVKB2L5T9L&$3L&U,W%OYE8+]1X%08RV[B39'G'MY OH*EM95Z2
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
MOA^T - "<-@"$+E57C(&/"L#BH7&VU67 LVS">AE87$OCY()G9)@&EQ6K"X
MU;KU2D6PF7/6)%@&OV>N[B*67JS76\Q/MZLF3@E7LV6^J'RQ>_+5A1I>Z6>^
MI08&NV6!T%3]@L@U2C&.A%Q2\JAD2A ,5@H5$:!NL3DX8TM*,6C3^.D[(]=_
M-'66;P?7/8X B%^T&R?)C@EINC(+578@?1:@ JL;-14T!.F:]!A3=/9[QY52
M-IOTNANW3(%"+2&HX@!1Q21-5LGKOB"M7BA!C:!&DNV39.E,<R2")A4>JF1)
MA4<B:%+AH4J65'@D@B85)N_ @>4SHC.2%P79: =*I@*>AP*1F6!9L58SV\99
M_<-Y!\9]9$,YY <IRV^XWJQF:8/Y\CR_F8SKR6PW@>EH;+#J0BO%M_W(20@1
MLP/.G 3EC 4ON8(039 HK1=VSX_<^J'^Q>^?+U=O</5^EG!]SP-]WI1^&/'R
M0-@:K1A'@JV0L\S::JCHBJ","A"8XN ]XT$&:7GL_$3_9FJU4?N2($8;=Y)L
MC[AV\L6$77)U[\\+""R^<0PPB#Q8D%IK%4(HHJD@UVW8P#VX>;-30 S)*4#U
MV(F<0Y(LG5J,1-"DPD.5+*GP2 1-*CQ4R9(*CT30I,+D@NBG"R)++U!K"<7*
MII]19A X]V!XRHI'4W^[Y[IM.S:A.Q?$D'RV]W!!4,6!@S1F=QPZB6&-N6K
M^3M<K,-.=3"L%A2B<#*:TZ\%B6S*$Q<TZ>L@Q$CZ2H*F/> H)'OJX36112>%
M!B4MUK^,A5CJ?JOX')FQ1ENY5^NM]>SRQA;^N3&%GWQF";>T47.,2F83U4BR
MO9(L&28C$32I\% E2RH\$D&3"@]5LJ3"(Q$TJ3"Y!PZ,(@^\*),B2&$B**T,
MQ-2<XRJ=&$81D][K7=YZ>CFY!RB_O&?'MV]78;&>7YS8_AYF"SK_.4!#8ITR
MN/ITG<T@)^OE?)8G5S(Y#1TZ1-"WC[TGMD-?C,0;;M@%DI@<\'0A+A 7B O$
M!=I@$BH(%80*0@6A@E!!J"!4$"KZBHH3=WTC5U'PI('[S)LH-P.!N0 A!)8E
MYIC%GNN;61U*$0Z2L!:4,;&^W&AP4B2E=!+:[KF^7VW.<-5XME=XAHOU[#V^
M6*3E.3Y?KK"._LEVM<)%^KCS.%Y<X.-%_LS_^#C_?;O>G->AO,3-J_(V?'B]
M7.V>V&Q6L[C=A#C'M\O7H7[,IB6ON36F(Z\Y@9? 2^ E&XU00:@@5)"-=DOV
M0M%.R9#!>,M )>'!6Y<@1.&#<XJGW$J&.=EHPP0O):\?I(P_AWE8))S\&E;I
M;"+Y=")84XB;SCKOJ4OBD6B4*2^WE0>C6\BN'_U(EK+DM1922&#%)U!:A[HL
M!0TY,YE45D$(_?52IJ3RIB@%NB@$Y84%+U  %R%'::W/=C\1;U=C_]5VL]Z$
M19XM?K^E O^+E\]O66BDFFIMC[+6?#5#3FRU(1B>* SO5A[G3T3%]MM;V>"B
MQ 2Z&N:@0G80,\\@I>=!(J*,H14J-O''9\MYO>_K9__8SC8?JX$_WS9\O-92
M?[E<-%^Z6L[G]24O&@'@NBW+7:KC6.Y$4Z(IT71$-!6:)VF8!JY]I:E*#EQR
M$8S-CI<0O;1[Q1X"R[::I 92LKG:I59"$+)^A V\&JE!BE1Z35.AV=3;KJKU
M$5&)J$34OA+UY$NH>HV)"X/@^*Z3E?(0G2X0@E(,,46KT]?$SNB\J#@'Y$*"
M8K*^W'D$5IPOR!AZ;1Z:V'=LBV6G4K#1D?O(#6$(X81P0GAW""_:UC\.A$X>
M5/(5X9H[T)(7D27+3(H]A&<3>,!2B>\2*.^KH1Y] INX#YB*S>KZ!H9]1+B0
MA'!"."%\M CO'+%<Z I2S4'[5'$9100?C0>N<G&R8*DF\5ZH;O%6BV*@*%FQ
M[&,&ATY $#ZP$@06UV\OL9XJKD<'5O)J$$^)IQWSU+(<E6,&I X(%3,1(C,*
MK"ZB*CYZ)O9XFD.,$AN4IN*:OR1XYP5@$38C+]+@@WL=;O83"S'EKJO&LD,B
M*M4,.DC77N)F,MN%C383<;(YP_IGA3@YKR\Y6T]PD3%/_GV[P(ED%%(W\,);
M)QSSWY<$D.$*FO1U$&(D?25!'U/0I,)#E2RI\$@$32K\8)(]=:<-!M2>"S E
M:U#,%8A"[1PP1C CT*#:"^Y33GFI/&A?7ZEB<> ]6A#2^"(E,ZGL.<%?KY;U
M<GY9KMMJI2NG5JA1%V$F7I%D>R=9,CE&(FA283(Y#C,Y9 XF9QO A>BJR6%T
M-1]\AF)MEK884[S9R\[BP6F% 3B7U4S1U4QQ-M>'1:DBN%))[Y5?:-WD$)W5
M1J Y3;0:JF1/G%:.2:,X9@@A\B:7M(F+EPR,MBFC-C*9O8)^QC,1T3DH(MJZ
M0;(6@C<9F//*-3&:GK,C;)"\[RJ$\C1F-=5I.4@/GGW 59JM<;(L]=.6Z;\F
MRW?-W%G3.=5@5846@&\N "P$P2062**)JB^QFJO).@B6<>7JEZB\7TR 25T:
M^S2;IC^ZUPHB5HL78]3:&5>?M'=L9G91>67WY*L+-;S2SWSO&BRBJTC0X4YZ
M8M<@Q-B3;0EYRT8B:%)A,C\./*#+*.IV40 Z7_>2.0F(G&?PJJG[QH43;B^J
MV@ECI48)6=7MJDI>0E1< B].%:N"$^'[>JG>:GW<8YO*NRH"1U.?H$:2);N$
M!$TJ/#[)D@J/1-"DPD.5+*GP2 1-*DS>@0,/)X0/W@<-TC(&*L2ZTT?GP4@4
MS$3'6&SE=)J\ R=RA$U)T\WG_(;KS6J6-I@O3[";R;B>S'83F(Z"!JLNM%)\
M<Z4(.EC%@H14'*_4UPA>N A:^2)<5MFG_:C+MH^Q+W[_?+EZ@ZOWLX3K>Q]A
M<]E5[8WASG@"UR#$.!)P::.5EDVDN!4>%#H$YYULHL>C,B$;(;L$U\[$O9E;
MAYNW7=67ITE/._:A2I8*!]_L$?"!^^!,0\H(BC=]3:U7P))E(6EGL\"NXP6Z
MPJ7HK"''P^]O.Z_V2^0<.SGIN(($32I,DB45'KV@286'*EE2X9$(FE287!#]
M=$$$9Q-GVD#0FC?-/U7]R4I('*T0DA?E]YK2MQV4T)T+8D@Y]?=P05!R_4$:
MLSL'G<2PQEPUX/P=+M9AISH85@N*33@9S1G3@M3Y@H$%=7)*@DA-; )3"J+4
M&D)T@A619,Q[.6[MI]@W?__<*.:3S_3RE@ %=MMR024J"5VC%&-/=DFT'1Z)
MH$F%R?HXS/K(I7!;,#:]=24HYQAXKTS=>G(K2K:".=EYAOWMQL<]HHRFTGFR
M0XAK)-D^299,DY$(FE1XJ)(E%1Z)H$F%ARI94N&1")I4F!P$!S:LB+8$EQ%"
M4DV3\F#!,9U!Q:2T=2::N-<CJ_4D>W(04)Y][TZSWZ["8CV_.,#^/<P6= 8T
M6 TYX96?3#PZLR5])7TE0?=,T*3"0Y4LJ?!(!$TJ/%3)D@J/1-"DPN08/3!R
M"@W//"1PSDE0RAGPP2@0B6=71.#.[I5FDM)*IEW33S,;4(5)<,FS^IZF$W R
M*F?]M6/TU>8,5XW?<X5GN%C/WN.+15J>X_/E"NOHGVQ7*URDCSMOU,4%/E[D
MSWQ3C_/?M^O->1W*2]R\*F_#A]?+U>Z)S68UB]M-B'-\NWP=ZL=LVO*IRG%[
M5 F()-G>299LFI$(FE28;)K#;)KD4W#><FB:OH*214&0)H#!:+00/LGHVSCL
M)9OF]-2&<IX/4K27RT7S8+6<SV>+WR?_/WMOWMQ&<N6+_NWW*2KTQL_=$4@Z
M]T6Z,Q%J2>VKN6U)T9+OQ/SER%6L,0C058 D^M._DP6 ! GN+(!84@ZSL12J
M<CGG=Y8\2YW!([:3*M3MC%1+<_%'LHT#.HK-^3CS)*MV/*Q#M=BHW6"LQVST
MW7/?$EUD6Y3.6Q9L%LV"V1Z32\&%@@L%%PHN%(.U0$6!B@(5!2H*5!2H*%!1
MH*) 18&* A4%*@I4[#!4E)+$MY[J$:5"$C$@[[A$7 B,+",>">=$D(:92%92
M.#FQ6O!H$2%,P&]T0CH7G"2)\T0)YUZLU'CZ:ST:-_7D[/W\C.-M]$VT;?RU
M&9^\73[N^#*^?"JR^,'_'@^!(OJJ5BS,N@[LMA6S2U.E MX%O/<+O(73+A"K
M 'D!MSD%&#>:*R0I54E(*[Q0?81D%/#>7? N"?R/8KA?[-".?*S^<SJ*%<.#
MBF+*RI'KDWF*'M',5&$\=<-X<++P^MEOAS1<N[2*W&JBO4">88TX,0H9[PGR
M-C#L@V1@B5R55F!A*,RE1HXH,#6PZI(B#,@Z2Z2WECIK5JK%=,7H/TXG[<2.
M DBA.TK5O__PZQT"A_&!8GHC,N<*A1R FZ> X1: X?T4C'\KJ-@[*NH(((:9
MS56U =<4CLARSI'G$E/I&8N,](**N8;6\4P/?_?/::?-^^$TX^.U\='7*_(]
M:?",JX*F!4T+FA8T[3GQ5M 0L&#(9T634QR0%2S!^"U.TD1ATTKBK3,L.[L)
M8DPR0&!+D!,$(Z%,4E89B^5VHRD5=,"Q+(A:$+4@ZH$AZL[[L'7$U@M&D;:.
M(\Y JS4\892\MQPG%9GV5Q';4JF3X0Z%)"GB)!*D:7(($\*Q]DI%=WV+NPTB
M=@M;!J_N3!P<"'-XR+WAP\@"X07""X2O#<*IDT(D0Y"G.B)N@T8Z@CX=L?1&
M:.83#BLQ)((ZYBB#BP@HZI(9^ WE2&/,K:6:$TEW!,+5 !M2(+Q >('P0X7P
MM4.LP8HJ%B)RFFK$0_*Y%6-"UEK.N,(B,;S2BC'HP#1SB"5A &*Y!2W9)Z0(
M\8F(I#T-SPVQM\=Y#+"F!P>LQ:M1\+3@Z9KQ5"G)G=<*J<0"XG!7Y'"PR FE
M+)7)N&O"GFU4D>"$HK08<<8TLLE2%)UFQA,3)5LIT+A5>$JI&A!>XA@>5\_H
MYDBYZ\CQON%S5Q9R-J6;>(YL&IR7[_^G-_!CU]1_&K1VU*(V-G5Z(GH?YN2!
M>O(W__X"#-R#7H@R^4.=?&&!0@4'/OG" H4*#GSRA04*%1SXY L+%"HX\,D7
M%BA4<."3+RQPX%2P\#?#?_,Y0/?R'H<N%-X^<K87ASOWF^_%\V]]X'UG_EP3
M?%"LU:.G^^4X5J/Q!*Z=C*L)O(&O0ARU,;/ZJ"LH8"?P)M4C._*U'<+PX(/<
MLZ*M;!,K&'!N!O"U@:].;3.IQJF[CW7C;W'IXJ.'+^F&^&,-]!+J;Y4?VK;]
M]Q>G]FM$HW&(B]_ N/+7B]D/XP\4ZB9VYULO8=.G)Z-7H6Y/A_;L9?[VU:D-
M^1!NJ=1#/1O.O#;"[(/<2:1.9XNG=#]%<11>N?&//$6XP\OS<Z\?]SPJ)3M*
MU>(2<L%RS__FO3D^/R;KMF9VY&43C/6E'7ZW9^VK%W\^W\3S*V=;T%'E]>O_
ME&7>34*_6-)U3G%!1MUI^#DX_7T9G/Y^@3)_][8]_GMZ)-%]GVVH&P]#'ROV
MYN.'M^\^?'[WMH)7GS_^]O[MZR_PYO-UD:_/-,0O,**_OOOPY7/U\=?JS>O/
M_[OZ];>/__5Y@UC]-)CH>3E^FH[L-,##PL_/O@0;%5B=+G<>A# ;:@:7EW8Z
M&2_B)?)8,K[!X//E""34> J2IOX1PZO9HPC&1_B/BQ_ +@[M:1M?MA%4 ^#1
MQ2ITD32S>[^X&KSPK6YK5P_KR=G+Q>^O"4:8/4ZR(R;5'^>(?<T%Y$C<]NUM
MW_$C36Z]]7,_]I9R2?K6<DG]!X%<(Y*N81B]>7[9G''7U^36'8UX;L#+.PSX
M!Y7&>[9=?XR@N&GE/M<_JA-X=]Q6H#B#T;.HJ/4X.KE/A;9M6,*>J&N+X.CY
M V2?1H@_U2.PH<?3UHY">V=>RO:LP5IPZBY'X^'A%,64%TA:HRPO7+(?7')G
M%<S");<+;G-K1]P>!??->3YF.XNNOK'M<96&X^]ME9KQ234^C6#@YM:X.5/A
M6SVI8_NR3TQ:YSH\"R+=-WVGKXEOJNAZF6TAX;W<U'V:[8-EW@-+C7?3J/-A
MQ63FJ7U,LNNR'[:[R?)=\:NMEY$?XJ2J1WY\$OM("]T+:+GFEM>G*3[;;#>8
MZ/M 7-E4'J]91Q:O5-(F:RE*FG'$,0<883XB9;W0UC#IR4I%<<>XI)IR9+CQ
MB!/+D>8D(NZ<I%8R^$I>S>+]U(QA.+^-V[XZ6*@!INNH;/!L!+[^H@4%J0I2
M[2Y2X204]5$B&7E"7"6*=(@ 5\G29*7TQKFK2*5X3!B^1LH+@KBP&CF%":+:
M"N8P%=ROU*7M':GD@$M\V$CU+*Z<%5UWS]7:UR''VLTB("?CJHGPE:^'L1J=
MZ[OY\_PN1R-5I\WX6YV/$]U9]=,T1U;6HY^+PZA8VV6VA83W>5/W:;:;=!C1
M/AQ&= <EZ]L(E_C:=MJH'87*GN3*4__J/BB6V1XKKL4@N]D@$\+9%$Q EOC<
M](,K9+U02#H=/0X&;*N5 G"/<1TM<Q^\'L:NYMLHO%YBPMY,-:/889MJ!;H.
M>R,/ KHT%2X989#1BB,>.4'&:WA+ ((L]\PGVX<O:8/0)092%"_3X[Q,11>^
M/T/];01+-(0!ADR/L+JCRD^;)H[\6?75UJ/JI^&XO3LXN(B6K9EM$2V]ML_#
M&"0!PX@99A#7-B'#!$4Q)4ZM<IY)U8=6_.N,^=[,>>]+8T?M;"!_ 2[,QQ<7
MG-IWOPZYEF8=^\\ !<GV9".W \D>5+/ /+[GT5IPTJ3H3. 4.8X5()W%R KG
MD3*<T9!"9&ZEX]%C5/#UX.2M\*CE7OD0GM"FJ'BG-Z"1_VKKIOIFA]-8V?,C
MX'S2&VTS&D\GU;"V7>)Z'=LBS':&[0Y,F*T[SA%'+TW$*#'F0-Q@AC2V#BD0
M)<P9HH/O)<[QEVE;CV+;OAF?N'K4.7C>P$WKT5<8';QJZ]#%5XQ'KQL015]G
MY6'>'.>7[T>O3P ,)Q_3#3_Y;<[(9^1QDJJKB('^%9MQ)B--"7VU3X*JZ/$%
M^@KTK4 ?#SP0;0-@G6.(6YP QE)"U%C#/6?:8-V'IKW5T+?:R6DM/:-WB&6*
MMWP#NGFV,2O@Q!8H-%>@/&UR?.7DK(LBB?^<UJ>9"8IHVF,^*Z+I9M'D(R4X
MRHA4U+D?H"/(\ER2E# M)!,LDA71]!BM?.'J^3CZ#(SX,7V:L^&GH1U-WBW8
ML/>VUO3 14S!L,/>R(/ ,(>E"3@91 B6B,O$D*;*H)2X"$0&C:GI0[U^'@Q3
MZ^AUND.47SS8&XFO=I,JU*W/)F )KCX4WBI2Y6:I0ARCE"F+O 'AP(T3R":O
MD"68<T99!.G2AV:\'(GX,65&?#OGPT]-/*FG)WVY6_B!!R<6U#KLC3P(U.+8
M<VNP0E(YT(6]8LA2P"*/E2$N!29<[$,7WA1J$7W@)4:*DW@#ZN_G8PN7.#MK
M;G1R&D?M+-4P_LBO2Y6J?>:P(DYN%B=66:.HE,@H'W*&(4>."(9D2LQ+GJ@-
M*ZZ5QRC!'0/^DOGOS1+[]21#V$!S==A2I(#586_D08"5C,XH102*7H$>:[U!
MQAJ**"8*K'G%F&=]Z+YK!2LR,/+ P:IX?#>@\OYB Y"EFRQ4W.JG7*X*)EW'
MDCNXU^Q51,@M:>F2A.0E1EQ*A3AU AD3+,@$1Q)G@2FYDI;^R&*LN9L=/'_<
MO!U/W21-AZ]]YS_IJ^@A/70Q4@#KL#=R.P!KIU,$70@RT"01*,.@'3L=D8V*
M(LF)=QQ+&_%**O4C*[[V (?WBZ>@)36P>)8WIF:_'WV#%^/FK&IB&YMOL;B4
M=X['#DQBK=NE+#0--H!B30FHV P$BPY:(>*9Q$JGX.E*%?&'J-@>S-B7YVSW
M^XSKWLV8[I<XBC#&OFK52;-/HJ1HV 6O"EZMX)5*3(,:S)"*&7$D$<@20U'@
M%$=O$N'Q2='%F\,K(0Z\:%!Q+&] X_TX.8Y-D19[S$9%6MP2?\=#\C1R%+#6
MB',6D*9,(F:]41'^4=%+P$3'91_&H]Q'Y'W7660N,GIWEQQX_%U!K</>R(-
M+>*T41P45*X4X [Q"3D3/3)>&NLBITGVDD&W+M0J976VH=W7SG=N[PJAM%4N
M&''1@ZMMXZ3MJD4L57$;=$V\QJFR_I_3NJTSA94F7;=.\[Y N@L]?PZKPU$A
MX8/<U'V:;>GJO@'YN3BQSXTO8_W-NF$YY=QG)7.G+:J=CLLA)BEG64 D>H$X
MCQ9I#W^"\,Q[[X)*O=12!1L-4*^-;^/LO^]'"Q[__9S%^XI[5P-JQ#Y9;4\(
MS2D0N94[6B!R=R R"<<R#"*L&, =TP3IB#&L379,\4A-/RZM#4(D,P.B]^H(
M=T>B%P]6HW\S;N>^K]A.@ @G,70]#>K1U\Y-%G_XV+;9#^;JX;#[%!APFCV[
MN=5>ETT_FF1"+7T/=H<K#TS,K5D0"1DYMR(ARS0((NUMCG>42 EMHL6."/FD
M)KU=_-";.9O]5STY?C-M8>*Q>9T]UZOB*?/T^]&[CG,_IE]F?/MQ]+<+IEW<
MK/=JK'@@22E"52#O@#?R(""/4:HB%8!</G'$:8C(Q02:& XF!<]MC"ONB0>'
M3.X$Y)F!*%T.BNM]8VE&I<'8?C/33DN=G?8GR:"8(D:".),,<182,C3FP$Z1
M%&&4>"G7XW)?XNW>.M63_4H%**[V HT%&I\+&CT72KI 4-!1@,X/^KO!F(+J
MCK5ED<B4>FEOM@EHY -<7.S%Q;XYS?U3$T]M'<[+<&5G^SB'25>^:Y@]F4>@
M%MFU,RQ79-?NR"X7>8I*,.2-SW+(":2Q#(C*)(W51%"U)K5^SOAO8XK YV&>
M"/%Z%+HDB<Z3U9=0(V1 )"]2K8#F]NYH <T= DTIC1*2(:*B X4?,V1"S%W7
M#';*81WQ2@F7?A3^#8*F'C"R5_5=-FD)%!_^PWEM0=25/X9GQG;)%"@FP([Q
M6I%FNR/-DJ-*16V1(2##>%(2.:T]B*?(8Q0J@&700T&RJZ)LP>YO9MR^%AG&
MR5Y5;RA:?\')@I//A9.:*.\=Q0B 2R!N%$"D- 80DVBE,8O)K]1&?T0AM.?
M28;W*DBG^/RW6],_3Y0]M6<E2W:G6.O !-:Z8^.CC4HZ@1C!N<>R5L@(B1&C
M7D=-<)1JI;Y\OWFLGV8<"%(%/FFF,?QV4>2E+^\[&ZC]\B25L/>"9@7-K@E[
M9X:)R)!7&9DTE<AQX?*I(N=*84]C+_WGGA7-Y$"8O3I*+!'MVZHC9P)>Q,44
MY_<^<U21*C=+%265-8DK1&Q(N04S0\[RB(2S1J7@3/"]5!2^5JI<D2$+Y\O'
M17G$-6C+ R'WRAE3E.4":[L(:SOMJY8LX<2D19([!0#H+#)4).28#1A4<>?Z
M:5RW.="\9[7V@33ER*^XLC>FIO^RJ/MRJ1J,OZUN3*D04T3A;HG"-0LK&P-7
MDG'$.,&(,T&1QCH@B9.U,BE/\).:3M]8+F$AB,Y6Q=B<KR^J)N0:"A_3NSD3
M]W7N.L"R%(0I"'? &WD0"!<UP]IRB6PT(JOC#MGD(\+"8QD)TR$^21W?7H2C
M<H#Q7I6U+?[RK53$9^UTJHG]$4M<R2%P59$W-\L;DSQF- 9D@P5Y$QQ%EAF)
M2& T2!>DP'&M/O,9-W[)S#@_D^WK^%4?MBPI\'78&WD0\$4 <$Q2&JF0).)&
M>F0=\X@">L4D/-'L29'6SPA?>*^*JVRP,5_1A>_/5=UQRW*[OB))'LE2#J@L
M-N=#/1*GDZH=#^M0+39F%YCND5M]]^2W0QKM]$EM\ X+I2EBCAG$52Z/;IE%
M+AF!K<:*T)6@R7Y4]8T=RLJ!D6I]8N\6,ITY4C#;K8/;@LP%F0LR/SLR4R6I
ME\KFH)F<[RD9L@3^I.S$Q]2XQ-=DA6P,F=F T#4&&^X=,F_2DT_[L%[H#EHO
M'^*D\K8]KDZ;\;<ZQ%"YL^JG:0LOZM'/RZW)@5R_%?NF2-$]EZ)KEG/>JV1B
MTD@Q##:$20E9;PPRE#/"B#*$]I*$"GS]!MCZTYRK?SG[6YL];>=R[O4Y._?D
M;%,#;=;H;MM.Z5:.% I0'BI0[K2YD:SEG'F'=$PVYSEY9+MX2*=54($$;)[4
M-&J=,'Q//Q Y.#1^CO#]ZTCQO@;(':;%UML.F;*K-!Q_;ZO4C$_ 8/B6(_ O
M&0LO[Z*Y?91WL*;YFW]_05_</LW[(GE?$[\6R-<@Z<ML"PGOY:;NTVQ+I.Q&
M*DO\<UJW=5:_NF2UTR:[U"9GLWPU^.[T!"XLEN(>1^'L=/#93EMYS' <L7/(
M6$H1#RDB:[%$5('Y%Z+2(N ^G&V?[%GFXO;+N&/W)GZ:<_FGH1U-7H_"NP6C
M]^9LHXSM4VQ;.< O.%EP\MF\89R1A*5%B?G<<S;W5*1,HZ1QY-0$9^E*U9_'
M>,,VCI-L8/:K&&:I4+'=ZO[Y<7H3?:R_Q5#]E%L(_9S)M+)+MD"19.5L:'_/
MAM8LKY3@+ 6MD<8AMP3C&#E&,4I41BI$"-[TJM?_.FY 4OD80_MK,SYYW_FY
MNV_Z/K7A=(T%E;;SU*:<H1></%2<W&FKP4>JC9$)B<C :N T @H'C:(+BGO,
M50R]E+WK$X5O+Y_!!X0?'/Z6"-T=,2GF0;G7'K,7,5G$9!&36RDFE5.2,NJ0
M=1Q$'D\TYQQBA&V2A(085=1KC/A]OT"+-8::#70)-BLG%@68"S#O$C!'30)G
M)"#!&$6<:8F<#Q:IX#CVBOED>CGU>#Y@IGJ 94'F$@:\T3#@5(_LR)<PX!)#
M669;2'@O-W6?9EO"@#<@(W\9-\WX^Z(C11._C8??LH3T30SUI!K6H^+#VZ$P
MG ,+;ENS(8:C )-+*12,R#GQT2,=&08[AA#O"?POT">WI+C@P(^CWQ?\]QOP
MW<?TIF/"O@Z1R$#ATF:BH-8!;^1!H!:G46G- F*&)< =$9!16**42$C:$T?B
M"FH]N,W$IE!+B@$[=-0J ;(;4(1_CZ?S<(ZB"!>1LFLB9:?/.[!6"BM+$,8F
MUSPA!&F05,@X'JAR$9.>LN&6@K0NV/UCRF*K?;C<NN=1!QO0_1)@Y8"Y@&4!
MRV<+;E62<F,P\A@#6(I(  *310%+XJ)RG"K22W#K<X E8P->P++XOY]'[4_5
M<#SZB@"63H!Z72E^L3ML5B38[D@P0DG0--CLFC*()^F0(0XCJQG#1$2?DNQ#
MW;\DM8"QOP!?OP6V[LDS)0;$[%4;NJ+7%U0LJ/AL)8$L]P)KB:*4@&LB)=#1
M/4<V,,(EQH8(T8=>OV94) ,IUIBIME.H6/SV&U#@/RUY[6<!GK$:Y@8J;5?)
M[B+F<]$([ZP(L)UAOB+ =D> &<8)4=F!SPQ#G$=0ZYG7B/#@B:<L1N&?'"RS
MX/:/HU]GO/Y;Q^JO1^'7!:,O&B6=]231N"A:?@')+=[1 I*[ Y(V>&%8Q$@8
M)0 D@T.6>(F(XP(+%43@*T>=#X[->1:0+%[[XK7?F-+_-J;8-#&G@8S:.G0]
M2X#'<D6[4M!N=]FN2++=D60RAY@FSI 6%'3^A!6R*H!\TI+P**3PX4D=JSM)
MMN#S-\ML_@FX_-=QLUS OJ\0^0$N<JQ Y#;O:('(W8%(X@V/5A,4<0"0LU0B
M'2C)O=PLMD$0%Y\4JO,<$*F%*@!9O/N;4O3?V68TGDZJQ9E5D50[PUI%4NV.
MI/(N!,D\1<0$A7@@#%F2- K66\()(=BM'#X_6)E_'4(GBNSPW$&50&KE2D/P
MYI+\^CT.[22&>3N&N00[=U[UWB*:#*0JA]8%3;=X1P\,3=>,=XZKR'@"V#*!
M(\ZD 2V;!&2T(D(SYR)]NAM^:_ NU3]B0/^*S3C3BZ:$OMHGL"N59;92=5\D
MD,QJK\63T^'X+$:X\=C_HSJ=-O[8MK$Z'<+#NI:3/V+C:_ADG.;7C$^+_W[?
M.;$(J9N%%-71!APT(MXE4+ %J-I>*01,Y3W3PG+#^TZ+?=^VTWQB_#%]/K9-
M;/\&<-.\'^5%KK_%UZ/0??P+<&YX,SXYC:-VYF\"+F[ALN$T@+SZG-GWXVF?
M;B=.]BH(IU2N*8A7$&_581Z3E%P1%+UBB"N>D-76H A@ISDHV%S9OG-;MQ7Q
MR( (>=B85SSL&U#3/XQ'^4TS'@YSE'R=L26VDRK4[:2IW;3HX/O.9CLMD7;:
M[1ZCX"+JA RH^H@;II$-(2#A@J,F!,YLSVW@_UJ/QDT].>N$VO%X"+*N1X&%
MQ3X)K.)$+]A8L/&YL#'PR"CQ 1F" >=TSH>UV"$A B?8Q!3Y2I6 I[5^7R,V
M"E.:O1?7^\9T>C!43\:CN1N]B0MG>RBBZI$L5GI^E9Y?ZQ5W7%NML<U5FA.8
M MX+I*//)3$U\4E[Y>U*SZ\G=H[__1P8\KET1HS.C=5;>1R\SDIN>]?AJ^!P
MP>']P.%U(Z4P+ BP!(*W&/$4&7+8)82E<%I*+['LN[M[KTBYT6B<[83)[3X*
M* W=?YIW=/^Y.IWW!JW<V;7M$XLD*Y)L?R793EL4-"4E'([(8R\1IY8A:R1%
M@D@P-9QF2:RSO?N3HE?O5RV:R(&0:SQRV$[A66R,@LP'C\SKSH<R1F)K'=+6
M!L1QC,B1 /:""M0;)116;HT=V->7Z43-@*^S:O%V0N;V90@\QKS8>OOA74K1
M3W( ?_P!UO+H:ZP:.XG5['57H3.;%X.9D1'_.:V_ 0GGVITY 2!''36UG^2J
M/O!]D5]%?NVO_-IIRP(S(I,-##D3*=@&*B ;J4 4&QRB$9&FV(=E,<.3C^G=
M'$U^!S#Y.,H",___W05^_'X.'?F+UZ-P^8.E*WMO6#/ ?(U'^]LI3HL%4A#\
MX!%\S1@KL+<J:HYDD("Q1H UX7E$F&$=B!2 P:D/"^19,?:N>%).#@U:M^]D
M9"\ME7S2\1-06I,+X_Y<U:/9*WA1+)02^%L"?Y^U:IX)UL8DD%>8(YX,S26R
M.8K"N<@C9;2?2*@GR;A/L:G'X?T<-][.D>0\'W!9FLXD;.]G'WH@&"]!Q05U
MMW='#PQUUXR+R2AA?+)(1Z(1]RJ!10! )ZC&*;HD ^XE[FE;<?$.8\'(O2I,
M6HXL-I,I<6]MO[*3RD48UBA'0(U3==J1>A%'Q<E5G%R/+<,7F$N4\]SS4B*N
M<OZS81;Y:)PB&%1ZN9+C!W*.">(3TO!?Q+4P\$H29#S#6$>F72*]BK1SX?6V
M;D_'K1W^!5#T%'X![_/0ZM$TAH^G\TI^O64,B@'GY:"^U$4J6%NPMI=\:@!5
M V8 LE(SP$TP"K35"B5N@A4B:<M6^K50+HC%)*'@-."ST1QI+ *R5B3+A8E&
MI3W 6BX'0A]<'&DY:MA""R/"Q\6VZ)?AZ!'-'!?&4S>,SRCQ[N?@_+>UB;[K
MU^$@A)_11E"I-1)1*<1II$@K"D:#--SQ0*QF*Q%+*A$3M&((1VL0%TH@0Q5&
MC(@ L":=)OWZSIY'^#$Y,&2-!PFWTN!.B;\"O05Z"_0^.%A4R("ITDAI;Q&W
MG"%+;82W,M  W,_YRK$%MU%%@A.*,J=XL^P72I:BZ#0SGI@HF=@#Z.5Z(,0:
M^\[L#_0^^FSC.OJ]KSFR#Y;'K"5RF#;YT&)R'.>61:;+EW?1V3Z*,UC._,V_
MOZ O;I]F?UZCOI;F6O!>@ZA_O _CL%:D,$)AA -@A%*$?0.B^OV\ZGHQ.XO9
M6<S./LQ.FPAF3ANDDW>(.X&1HSPACHGG26(I9"\YB@O.S1VW/\2^PMGD0*CB
MDRL^N0*.!1S7$7>5"(V!"L2\ WA+UB!C/( C]589ABV)H8]0XO6 HQ@PO;'*
MLKL,CJ76^D94=S\^B=7$_BC5$(N$*A*JI_1WJBCSW"!,&$@HSB32$=X290RC
MSKG@5TZ-'J>^9^[]DIFW7R'%!AIO+'M]EX54P<>"CP4?'US<E1CFI+2(8H<1
M5]$A:Q)&+@D25+(N7!/0]"@-?DWXJ 9RG=WB]@<?%TH\_-?"Z+N7ZZ3F>T/?
ME6??^KC[SOJ>DZ-W/>_FZ5U P@/U_QZF^^4X5J/Q!*Z=C+O#>/@*S)Q<:QU>
M=8=(-@<#SPNMVR$,#SXXF04,-[&" >?^K%\;^.K4-EVIQ7P?Z\;?XM+%1P]?
MTMVEEU!_J_S0MH ZI_9K1*-QB(O?P+CRUXO9#^,/%.HF=F#S$C9]>C)Z%>KV
M=&C/7N9O7YW:D,. EH[WZMEPYG;S[(/_F;:3.ITMGM+]%,51 -CYD:<(=WAY
MCD _[BE_R(Y2M;R$6K#<\[]Y;X[/_0[=ULR\"3;!6%_:X7=[UKYZ\>?S33R_
M<K8%'55>O_Y/6>;=)/2+)5WG%!]-1MT]0+:/9P%R+Z>YB?JP'L4^%N/-NS<?
MJW<?_N_[WS]^^.N[#U]>_U:]^?C[IZ/J]8>WU>>__?+Y_=OWKW]__^[S!E%O
ML5*=.M9A^M^7(?SOYQ#^]PM4WK)E_7!=;9_G'M3'+]LXJG>?JR\?@>@^O'WW
MX?.[M_G5YX^_O7_[^@N\^?7]A]<?WKP'JOS\!3[(%+IF2NPDQ=:S[4_3D9T&
M>&KX^1J)??V"W/:<<U/HP_0D-K5?6$)>2JDU14%(E7MH!Z1%R*D=6)JH$B5J
MY2SC,9ZBC\U7.ZK_U2W4FW-6AS>O1^%3$UN8=/?V8_IUP?N?SUD_AQ$/Q^VT
MB5]@%+\,N^91$0RGT^Q&;Z9Q678M.\ 1/U+<_/%<+^G<Y/Q(,/;'JWOT>%7B
M*CT]TD/>/?#[3$Z[\3#T043DZ ^_V+9NLZ;[>SP=@ZTW^IHMR^K-LL9\ON35
MQ9HO2\]K3QNV>1F?;FA8#Y8[//DL+]@Y*S[(Y( UG\G>T;>Z&8_RAW#!FW%S
M>M3E+]9P33MU;1UJV]0PLI^R,9)[FE'\ZLWLZ8/N+7EU_C'<\.IGW^/53Z;M
M^2>PU?,/Q]-F_N'/U;$%@\?%.*I@W< 4@BF<3IMV:D>3A7'53(=QD6?Y=3J<
M1>XO+*;/T4^;KK%"=\6B+E&5N[O5;9L=+<N3^?SNS>+11]6;V$QLG4VQF8<C
M7YQODL;C258%JG#.[2W8>W#)<'B6:TP.IZ%KJW7]:I]/!"[(F]<$N"96W^O)
M<?=^.NIH_[2!.]6G>6Y?XR@VW<WA^W@ZF?TV#_MOHVZS.V;HYORZ@TQ;_32?
MT%]>O_YTS6)>4 <L^_BDGDQ6%G;<WK"T1]7[V</'I_4HKPD\%H@4]/X\O\',
M4.V%*/.=YN35 7O>#%B&RH9LF'67#;H[U6VW9.,1+!'\;K87,&;8^RX@_M(/
M1M''MK7-69[GZ0S1JV3K!GZ<GW@QFM-Q6\]VO1O.?TY'L6)X4%%,>;<J'?G%
M=CJ<C7=\GC@R3P1.P_'WV?JU2[W&NV: ZE67)CPYZT NWVARW,0XN[C^49W
M?(_;G"<,"[3Z9'C!CJHO-SW_$3=M.I_%^>K4'2D'H*5)#50SWXW%PV#E7*SB
MC]/8934OGI:FL#MGT3:SH3D[[$B[/8YQ,E_$MW#_$Q>;BI'NR0RHLIT1):P-
M/ KNUHQ/9E1T039W$,LRTRU1S7REV^KU:#2%7\PD2^Y/\2N02$4P^C_G8\_#
MGJ_,ZAAAB*D>PE<=EW; \NY-OL]?;>./*S%?Q&4H.7_".: <N*":X=X,1H$0
M;MC'O-D9;C-G=(N=$0SH#G@EP^P%T&0:/+'_ "H$YC_I\"^3N6W;Z<GIC DF
MQQ;(;M:L9$:]>?MA%^U)1MF.'N'Z.$_3'];6U<,+87$![_G"67K8U_SDFWXS
M>THFTP6_7._A.T>.U>$T\5L<3><#R/P%:-DNY_4TY\K1+,,'K&,_F79H-V--
M$"##/':8=K-@I8SEY\MTX'38WK(KE\36S(/;'G?KZ?+*VS GT/^9CF:'-.=P
ML("J6S=\[A,^CDT$XKV*6>> <<@;]+<1:!S "7F1OM==I>Y.!L4PZ$3_7*2T
MW<KGA<MG)3.G>;>,XVD+JPWR-_[(FE)FDIGL73#9I<7]\R5#<\GYUJOEJGDP
MVFB+LEQ G"N''#4*82HQB\X2(V@_#1J_OS[7'S^!(@\O_8P$P79],VO.]'ZT
M?,U"Q2S6ZH.HE![](5]T88U>K&EU>>$?Z>7J88S5,J'W2L]&2"Y(-"A8:1"0
MLT;&FH0L-=+G?D$T].*)N86>/X$ZZ,]F?^]!N[N"G3V3Z1)5@H4X"K8)H J'
M\<*"_+7.1_K54VBT;\8"+?J I=^'\2C>+:#ZY6;&HM%*8T05 <Y,22$G<4"1
ML12%=B'X)W&SCWY\F97/:?'#>/+?<3(GR'LS\[(@VF92V 0SS^SP^0H^G7$V
M'6O=P[*\'UV8Z]E4G_F?KI7,%\OVRQC^,[/67_SZ^O,O+WZN:K ; 16OO?QO
MIYU-]].+UY__!I?FQR!L!M4\)+R+FJI^^C(^!:92'/_\LGI_<MJ,O\W5?]BD
MBRNKBR,"T%)A5?QQ!5H4O,N&7GT>9+YL?<ZMW[G_ZK0!.Z[SS]@NJ']F=%ZR
M53M#,0^Y >:#=0 K]=Q[62_%L7=5(V:^&I@:K$$5.VLY>WRR7R3-!$1VC;1+
M1;&[@_V+92=S]\?L1@N''=PLN]]@S##2^,T.IW:R,&)KN&1ND]M,NW.70'[?
MSE<=%'Q0]SN/Y?AZG\Z=7J&C+5&^KD4N>22EVA@O;BY^X9" YT-F\2O  VAR
MCB7 4C.L4(/J<_S:>:TN#K?F@$'U=8 QNRP;M^>_O!4XVOE%]T"-5;C(G6CJ
M!&8VW&!QHX7OJ2]T@/69H0]\69_,G5>[#"HWJV>;\2H($;&D/J! J42<.C#
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
MC3YO?0[E:N/HQ7_\*S;C;=KV!4+=LV'+\XWTBNFT^1KXGA*5I#&(F7PVXH)
MH 0J1"1A#!,E%.D%>RZJ??T^ZU@T;LY>=S;5ZU'X[:)91ZE4]R#ZX4?55I6J
M6WA+JM<7K5B6=G>-9>NDTC89'5&D.&0C)R++#$=!<I>4]IZY%31]#"$O9OA?
M]>3XS=SAW4UVB8[/OI1R=8^@GG/BN:F/3RE=MUVEZX0Y4H;>629.ZJ>6B9-'
MG+(GEZM[CG&4$G6/E$:E1%VIM%5*U)42=85Q2HFZ76&>4J+N25'G;\;M7.M?
M],2$5[;)4;/=B7%N'=AV-D .0.H^'8^JZ6A^^#MK2#L[8"Y)'SM8(Z=4A>K1
MN^P=$XHP@IC4$G%K%3*82A2$=88%$Y1.?62WW>@/Z3UG0X@!4[I4ABI MNU;
M6H"L1R"+*4IO5$0AV!S'0CER3%$DC2:":BGC:E#!8[+.-@=D4@[$NI-U=P;(
M2HF[)_',+PM-^))^[&_3I(O.O$>B9J/:PYY*&$(%HT)PY*WPB$<3D!9)(,U#
MC-0D[KE;EZI\?F38LZYL!EK<'+=6J+T V)9,N0!8#Y5L7/1:Y#)M.)>QC\ED
M6Q^CY$RP.CGE_=I4Y'4!F!QH<W/ZUV%1^]HK+^QH2NX63'9#Z3%/KB-QJT7P
M,-]Z=Q?7G]U1:EQ<+<*I'==,*L0"!7TT-U^U1GH4O0K2&R*Y]7W4N'B*Q^-A
M4>&*'-U<>7,+P\)W@_!Z3QQW)!+/6$#<RYR+8QTR26ADE>.<Q."%B>LBO'OK
M$0_,K:5;F3IV-64V]U(_3V9=CGE<3F+-S= I?O7:^R:WL5]T@N\^)J\N.J??
M)RUUQS&W?]+G-$3%.2**)J!_$Y!S3"&CE"36<>)7BT%&(@FE@@#I:XVX=!19
M[P0RAL2(/0]2KF1+SC=O*29Z3N^O1^'#>.1[)7ZSE8GE@T)W2QW(M-6" <:J
MI $^E6+()4D1M5%[Y[04;J56!Y- J9:"U19ERNT2-#) G\@;[".H#AK3^*QT
MI[:K<$>1]M=#GHL\P#\DM<  >2XB YHE\H1Y[!DV29*KI,>E<D[E>FLR9^O*
MR)&C(/P5)D"_G$5MKROGN#G2 ^MO*TEOFU(7!M?D+63>6#$:+^LHK^^LM_2<
M1I/5AJ3(*,)!1<2S+UY+2Y&,AD>J76#R2?D_EXK!+-'R[_#YUQ',.;R&U]_B
M:!HOD?+IM(GGM(SH,C'3NV!TFVRF/SXC%\U='6_&)_#LLS^UUZO*,QY;)>U.
MU6W.MRE?U\PVJII7<KD]3?3Y)GZ_?-"M.*18>C:Y,ML_O8%[N:;^TZ"UHQ:U
M,/QT?R=?[QFOV(/\TIZAI!.(/:PLR@YRQ$-*@:7@%%YI<?*81,'W(Z"QG.;Z
MMF[]<-P"#I3DU@>1OSCZPV(1Z\L=^_HE"-""D@!;SU$,.C67+)=?D,AA;ISQ
M1-JX<OS[M!3H<]*8*T(E7?0QY+%$&]NE7Y74T..7DAT)<6>JY)'@3TW)Y$=2
M/STU]#G&45)#'RE:2FIHR7 KJ:$E-;0P3DD-W17F*:FA3XI[^]U^K[+CL:GM
ML 2J[V+D6\F)ZM'9G; .07B. #(LXLSFZ'.6D&-,<1>DXF0E0N@Q$>OGC@K@
MO[\NV*^G"$^J!EJ6",\"75N_I06Z^BQVZWS"3G$DI'2(>\)RU5.'/ V,66>L
M<"N!-H^)55\K=(D!@&6!KB=HMB6!<[ZX_S5N_C%OAY&CJ(N .!C&*7+A4M [
MM31)&9"@-"!N(D8N4(PPQ1$3ZA65O=0K.9<+F?'>CS[-V*ZWMK(#Q6Z.N2ST
M72!K2Z9<(*N'$DO,8BD-12K2B+@%?5;CZ% 4FMM(?=!A)7#@2:KL.B#+#!2Y
M.<[LL,B[.&F?Q"6_UJ.Z/8ZA^CH>AZ+)'@[?%+%P*:5#@B2@/"(O1$(<=%0$
MVJQ&/,9DHS3$AB>U7UT1"PN^^TMFN[Y<' .#;XZD+^1=$&M+IEP0Z^F(Y;SG
M.B?MVH@5RN&PR.241DR$U5R%1/%*)M"3%-GU(!:3I3IH\<GVP"4?73L>QA98
MW,?*YB#=G#I=Q,-3^>?NH*F=X;!';OJ#PL9V4\1<VY6V=Y&E$^;!A( XC;E&
M"O'(&NH1Q<S%2%34I%]W\?^UPZG- _@]MK'Y=DOGQ(>)+3[ ;,V%^NX3;O?L
M 'UGP]L"NP5V"^P^,^QZ[P)-G" O.0/8]0"A*66_MQ8D4!:5EKU:"NN"73:
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
M>3O8KP!U >H] 6KJ$F.6 ][RQ$%)Q@DYXP*R.'GBA2&"K_11IEY;3H1$5"@
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
M)]:#HY6\3%)9QT/7.M#2"6UD)L((3"E)BGB1.%BS7$BO:+;E<:+1\ICVR1K
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
M^6[Q!J!6-5FNK'7UDTG;^:;S./7%=X=EO,":J;8UP>H,?>+>X;^FR40NP#Z
MGV!=@(OE37)$*66E",$5W4F'<S$RC^V9"HN _PY\,Z<S)\)2PXMQ'#RW;EAD
MFM>Y<.OQ; O^.KTU#I4:1WN:VHQ$N"A>>];)XSWB^")'?UVY>N<E-O3HNU/E
M2@'K/&=7VZ,1F4(@P9A"M P:VZ9Y&SIQZN3@.X-9"36V70(XLY$B]78J+ @J
M@NF$2K:7XX&6F[3]-,D&@W^WFRWG)ALI,)R-N<R:@VL(!G\N5L22-67=G1!5
M>$FN. *^8R:2*I#*;!@I6GEMA S<7A$'/[R$J>,^<?1M&_V[FG]Q3>>]UAM8
M8,;8HU:L]$XZ>9%*%,9 '(/'8!XE02A':-&&ARQ"B9U@A[(N.R8XL2EAIQUC
M0#IM((D)+RRWL=@K4A .+IULB'=\!@)&N8LN"4]X%A*)S4# DE(D\1Q3"J6X
MX#L"%DQ$(A3<_#, F8!\3KM(0%(5"RIX'O2#"%@O]>OX$FWM)23T-[<#=R&R
ML2W]Z(?5? :#,)W!D]3]PDM>UD5]Z4F>K(D>UC0(YQL.C=:]F\QB2[U;/_XY
M8[;*Q&/_L:9AZ*9$%8^<7.QI(Z9/\.]A-6T9$\*$@OTRLLB!2 7+P]%:R)&<
M9-1G3SNKR4LG$[9=D,%I,''!CX0G8,0*4TRD2F7>+:8Z_&KB_;0E!KC>+:Q.
MQDB*_E QV+,<I,P*L$$MX*[WKBC#.]VD"N=*"<F(%!FK_S,6F((C)9+53!K-
M8^YL?MR+@'V^<'T3O.Y+M<=:4_SORD]OI"<6MU44+T_@BA]3#X\9ND?.QVW>
MPD;B?EZ=YODXMCR&_P''?+%4C?AR UOI([.5LCULI?]Q4T;2]2P.I*3[)?UB
M2+<%^N8WVBC9%AW659&>)>Y 55JOL.2D<.*I\X1R8PHWT3#%.]UMA=3<<DF<
M!$=(,B^)E=A>- 3-O0:W6W9<HA_\?(KM+-[D^:\G?IY_@\M]!S#Z^U>C#!KV
M# Y=SE=Y>P;KR(\Q$7[YC,AC(]W7F^79^^VWINL'".<D'4(<W/$?UB-8J]7K
M&&Y+Q]5"P2[=[H\OX<W"?/S'HX6?+L@"!*'LDPP1LO)(.0_VN4"N!)CO& ,I
M,6FM=."YRY5P%\GX-9[DM)J !7991K!;6GPQ3=^/)RO0QK]A$Y<;R,W3V:'%
M8M75LM(*UOK/T[/9M-HX=9<6!J_:+:D9OE'>%J %#O"&:.<SR+:MA(X>MXYQ
M&W;Q;-<(J);0LG;YN4(*_&HY>][J"7Q>5!N ['@X <T/)C$\PH><GC>/PR@]
MIE^O3Z@[7F>+_&R1SSQ2+JQ%8EY7>+WV5^MG@(?8*+QWX\6XID:?/UM?8^M
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
MB42$)!U5,7-U$)7Q:SS):37)K\O/>:TB*I/<;[7#^O4:XFFL@RVDJ/BSIDL
M'&I(%4!LT1EL2.%Q+:!%BQAWWIP 5NK*S\?H4&YP*&1XUVEM-E,:P[&,T4 >
MG6<_;\!N=YE5:L1ML%P_!CSH8KS !=(>56:3R>P]YJEO2>BZ V-MP'C5_'G
MYW7O21Q#/)\^KX>3B3^?K98P+!]R>MX,$:/TF'Z]/@$F8N+/%OG9(I]Y9.]?
M3V;M.]I<^ZNK^L*_&R_&83P!U'VVOL;S/0W?ZVVE/I9?8_+^_D/8,>/7'7+=
M]^!U6+KUW[4G#,_TA3S3=KO2;4%M2T$L8$CP\?>W\QD8&:0%H*8KZ]4 A(G0
M30'*LZ8,!3_8(^/7MI9>@^ 5)2?V0!4G5]?[[,?6]@Y_? FGA_GXCT<+,(3)
M M19.4#GZ:M'Y'Y'X,8U-Y_P>B X^&V-AO1^\N_B<^TW*O?NNM]='OHP2/?4
M>GU8 #V8VT,N@%_WA><&\>^O"G[X]79(D?NF=MR:K4 SI\6W ^H ZO!K4&=3
MX;NNU3Y;CFHD8K2>DCXLND,*R7:'L-N+QD?&JUF95/1BQ 8M/:R7@ZT7,:R7
M8;T,ZV70+\-Z&=;+H%_Z[3;6[9^NWQAA*$J\E8MXY3/?9H7>*SO0)]2&O<(9
MRHMF]_8FLM?OD;@G+-Z^['36KU?>G?QK$T0/-+=7KO+[?/6ZJWA P=_3#,87
M)8H1) OOB138#-"D0%P,L>A,?4D=:DN1/-@Y19)L&"?P2R)6"4FT+2+E@)P]
MN=/;K4F):3?@,9%HO1!Q,WYO'J78R:,4UU&J4KDW;?)SE?;#KN4!P'KPR@.
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
M'IZ#V:K@;26 4Q)0S7IB+5B O- 8:7&TI$YY^FVB83''697%_YLGZ?5JB0;
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
M:RH5?+/A(AY/SU;+1=W+F($PS=^UFWY-IFKE$?L8\Y?X*/-76P'1$Y:UHQW
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
MU,%"J$'BKREZ+ZS0Z<#;'(]AO^SB?G':%[#?_M/\HR5E['H+0C#=8,U ,-*
M*SI:8YW2>L>44M56%TRVT'8L*)XK^&94I3*O6%0F&[4W:N\VOIR7R4NQ>W=D
MVKVC^+[83FK..#>Y7'.'CAL@=>PY+>M8<=F@RSR6>6=6QBOZPND.VR$^Y3/=
M6+O_MUF8S''\E#LW'EPO9PE+439$ (T3X,[C_I]RE::W'CKJ&'\;R6*[IJO
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
M"?(I_8;-9_C18Q@;**X\UZ$>WH/V:ESNB9W^3;OP3BDDE9Q2ULQ 407#2\9
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
M0L#/X](^_##)/VS-).R-!<1QD@\F(.M]EQ*0[?.TG90B:6E JI!!&2' AUJ
M"Y6K+HSKD/<AAGY4(!.6@(R K/==2D"V1R#3)3G.I0 E/0>52@&7<H2<I<[X
MA10E[4,'_8A )H?:D]XC 5GONY2 ;)_<6YQ9:1##F*\6E,5AHHLV090V:@2$
M;,R.Z,-3!-"/"&1BJ-R!Z<M?#9"1]OESW8:TST\TC)!4W?.C1V;"*.TKY(K9
MK&I\[M$8#"&,:1V3YY'MD+H_1?O\J.-Y+DFCCO"+NO0,\ M'\$HT 1YK@\%A
MO X0'7X2E4?E>'%6[^#74V3/CXA?7M$@GM"+NO0,T$OC>!L'X@I8-*XID&D(
M67MP.0:M=(E,JGWHG1]U["[T@<4A3MW8";].KDM/%+^4:%S3R6(!K6HK*0)<
M*APJ3Z;D6EW<E01[BM#Y4?&+,TOX]8RY1]H320KG)*IVT'!RMJ)J)1IN@C#
M51ON^U A-(TU[45AF!";%'<2YJ<HG!\QX&A.2KV44A-*$DKN#26#<DKC_1!3
MKJ"4D^!5L""3$IQEDX2,^Q V/R9*JJ/JR!!*$DH22IXV2B9C,Q/5@0E:@:I:
M@_=*0S#&RUJ8<#;L0\_\N$O?XL!;V0DG"2<))\\))V.66D6I07/GFL!6DQK4
M!6S*)=H8JE%[$3(_*DXR?>!)WI/"25(P?QD%\_Q<1C *:B2"1B)H#\Z7L,2-
M%1HR;QM:DVHG[7$DD'4(+ CF<]F)<$^1+S_J63!E#KP)]L34SP@V"38)-K]-
M.])X*5."DATF^2P;",(6T"IHIHW65NX<H7V*;OE1=W]8HPDV"38)-@DV#W5D
M0==80SMW:V($)70%QV2&:K33/&=GXH[D[E,$RX\(FV;H+2F5$VP2;!)L'@HV
MG:PF,LTA)(ZP67#4'7GBH'&XKH-3D26W#Z7R8VYJ&)I#GY4X,=@DB?*=Z>W7
M(5%NY(4T]D&A:_V@COE#WZL+:RW[_._YXMLO7282Z'Q<..G>=DR!SA-3]"&)
MJ*^;S49=>$#::H>DDS^9"I,K?47I*I6K6&8#R3MW(NFU5RN]ADWU\L/OYUGC
M3VU7R*B.N@P[S.=E,2?=$](]H2J319]!]YY<E7MU:KV_X9%D?,Z"YH2XEO>Y
M=%NM8SP+*+)M:X_<0Q#&0&+:,LNTU&*':UEY)F/3O'""<U">&PA*-<4,%TRQ
MT1:I[ZY!_- EH7M:95#"#JT\\/')5[."0&#5XRXEL-HG5X:6048;&[V2;Z?
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
M9T#]T=C[ *.?N'QZAD\_3#0LYIPK'4W8L3^B_L.? 'K.8)KTHCZMPL:#!O*
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
MJA0Z97-4#XT/S-<<$WD<  2'<.%CNC:I?U)Y^'D*9KHSZ%RW62"9*%ZL.)5
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
M?JSW(^&I;_4CRPFL: R,CCL"3&,AR]?8N9SEVH1)'1#,%#_"3G//\W&/0.Y
MH03V/Y:0 57@D%=D#_U$,/<$T8 >7!MZ@28"$&N!.P:P-EX(<E$B(^0WMER6
MKWT=)["DK@/+KM1YV($1OP-R%K!MGI]Z@]I1@/3UM'J0R',PZC&VR,,9:3>&
M204ABLJMY*S/<>\D?];G 8\M. 0_SAZ"Y[E#\%-ZLES,''@WV8%W_<@V/'_(
MG7L>DM2-PFED/5"3QLRH5W]/;11*MM=K\1$ =MP':FL8:CT:Y:*I?=L'_.">
M!W;UL^__Q(V]30_X4JW*;HOP#4"9_1/.Q!#%C06$],_D*%<*E%HP-UZPG$2$
M4!>3Z%AP+[X)N-69O9G9.4_$/OA3%&@!XUP[>!N]1D,1?OJV<;G@[<O$#SS[
M#+1]6,\1,BL?*PJO *([@/AXYJ&2IJ@>>+Z/^OF="+1I0N$$'R"8!*#%%L<\
M1ZG37SAU>IM2IQ<L=7II@16/7SRF3=RD9;BI7C ^S!A.$9V^!J 'A3/X]QG^
MT=H*@/0 P3D%PEX+9%007W)XC./@2@A5J/P4QB=*%$A$7KX9:#XGM*.@7(F/
M@SG\UTKE0NT"Q+=!IBQ:<0VNBL+H%2<*?B!'2D3NBU3Y4)(9"O6)WI/_ AH<
MHQX9&P2TZ@%36# L3&#_6!T(0&$,U-0>R_NI4@<R&2X_Z@@U]B^!6A]#=UX]
M+AQ?O.VQY%I)-CG^LUZ%^;^"W ]2Y00F,_]$GV/R43.QY#G_=QB;L+A\U &0
MV)\+^E5:]?RKH)+._TUO1?)'M3D.\ .*E@_HFR 3<RF0L8<GRHJ]5<;\9?L.
M>K_O@HP?./*G7OD(5CI :E9\H(3V,9^"RH4K/Z=3P0!BA0K7)@#I.M&F4+Z/
M=S5^N9+?2J:,PR/<,#V.>%JH-@?HH0![J=A3;7)^+E]]Y'B4XY<,>59AK^@9
M:.5O_3D@<<<6-31ZH74HV9HK& HSSFOL!OIGG[0FG.R4$J2>%/&4%\;6&L8
MQ@6OK%(T8D</+4F"V 9@@3-"G5D5YE-BVMER<0@5MJH+4%05KEIXA=.P?VD2
MVO@<4&4E&K5&H_%F5AS*G2E88&.AW /;&H0?U,E152KB&1I.\-;BT6&:P7[<
MV0L=.HU:L]GI&3VCV3+J[4:ODTW;\7#D537[%=/%$QIHI9T>T3GY)2V[,=_J
MRYRI2G!'$YFZNYLJFW 49- ,G).:B9#>,N,M;-]/$>9M1]I12K$6'DT+K$O
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
ME=,16-S+ECU>W?DUS3?IP*/8UQ*##/$E-:5!P"/846? 5%1USIR8Q>K<X2J
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
M^[X]_<?_][?WHW#L_N/_!U!+ P04    "  Q@?Y8#, S4@8O 0!<.A( $0
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
ML]_&:&/1I1_%X;;<7E78L&:K\M:-Q#9ED'G=L_WVC+\N:R_&I>-7'A@>N+!
M^;+2Z(JN'/;)B6,:%F]CT[XU.UMD_]"$\=Y,D>9_1^I$DG_=\8.\7C]5>:M^
MJMNSO!W$[/ZZ)7OZ@K:1Y],HNJ4K./0EN3A-FE=OVQ_R9A!%BTABKZDXAP5*
M;^\C^L\M7X#SQ^39J_A[S4;EC2 )!2)(O.Y.]]ZUZX!YBS(S\5X$:O8W;TEI
MZ&TC;]00K^$>K1UO=_ _Q9M=VKAF8_,&F (G''DCB+UN83?>.',?]^I1LYEY
MPTR-9^YU8]N[Z"H^RGRKF@W,FV,,$J^;U;W?KF+SZGO5;&;>6%/MPWO=W];.
MO.*+M;A1S>X51J=D,H)?]ZNE?Z_B\\LUJMFOO%7&3,=\W:K6J=O%WU9)JYK-
MRIMC"M*H7_>L#R=2Q2?7J&/USOZ8M]C4.Y1>=[J=:;3LU<NUJ-F[HD@6(Q3_
M=9>ZMI96?(NUG6KV,F^PJ;*<ONYM9S8:$Z8F\R>1>]+0?%-/I^8$-+/L9#%O
M\J8?F3'S>C+:GHQCU\49@AM9?WE[G8DJ"C6G(6\:*CX-R1#I^^'U%'1I -0?
M=U4CL>1[F0GWHEMS8O*VJ#IC8NHNJ;4\RFF\'JENCE3%W;#7$:JD4W-D\A:O
MVE-0?-]\^WH\.K!,Z]O ^%W%>].L9\T1R)O-3 MVZH9(F;9?WY>VN[VO>-&P
M:\U^Y\UNZ?U^E2=LN3+4G^Y"QZ6 ZUNQ]P>0J3D'>8M>C;/#:/"6Z,%>#T;W
M!R/[[PN8.KWRE@>>D%IZU4?EIWUSV_!.R?].#$M@W-=3T_VI4;OZ2'-_.EX#
MJL*_< &D,^RPDW30&#6G*V_$K#U=^B3Q>10T,*>BG'^O)Z[[$[>O ',@J9KS
MDS><UIZ?5QEG$,#P5GCA=<>@T'IZ"%SXZ^X?&AQ0 ,I<$RE0U*-FGPMR&1NA
M.+]N:R?;FD(_WG^/B[K7;'C>K%FSX6F YM<#T/H [/O.-^M9L^UYTV1ZVU_?
M\%[! EK696B$-=!VC)H3E+=L]EWZX?70M3MT^UXT^_2O.2QYLVCA87F]=2P@
M7^S]WNQ-I>8PY&VC97@9KT?";C DK'W@"RSDTI9%6F?OHU0?J9\/"K/$1'4Y
M$WAZ*KN\*K*]GKQ]+Z7#J=6<I+R]M-%)>KVF^L*(V=^/VZAKS3'(FSU-9)G7
M#;>!/;/OSN]+H^8(Y$V>A8@UKV=A($R;?8]'!V1K3DQ1OO$>2#BO)ZFGA)#:
MD[)_MYJ3D+>J9JHXO&[TF$N!V*@$4G>$\A9:&X5 7@_>0 >OU/-C<\":(UF4
M ][CD7SU-/5S1)/BKF%P 4^/(3C7A<IW0+'FD.5-Q16'3 \,,$L$ATY)Z;F7
M]36 OKMTS<\TOG48C3#@")3CBS!8SS<TQ+^>[#(]*T3SKL>H.6)Y W1E,BB
M>\4$IR%CGM 2L.0S(7HJY'Z7I_)Z975]YOAGSE<\WH'AC]\*&_BSDJ6C,\K7
MCG_YL; ,FH&*<'Y<WM9;>HX.BSOH1/8Q@\KS^H=W^\$^@LE2SE'8+-4LM=(1
MS8@Y46R5BNK$4VY,5B/RO)[GCL^S"J8\Z"AF.M><HKQEN^84Z4#/UVWO>MLO
M(0U0_EK$Z])0_O.&/E)_6^E>ZX)NS6'9$R\!4Q)"YTC]388&TU#_1@W_>IC:
MH]/ND]NZ5]^:0Y&WB.=0;;_Z#%;XGWLGHK@-S/\]MZ9.N(">-W1)Y(_F\7B^
M#]EW0;AZZ_GQ6]=;OY5MWCJ,WP7/2.$AI,O4>=*=/G!1 4FX\1'\_-USY/YW
MHV?,I_NG;R)OO6'TF[<=S8S_+#RD1WSMG"V+#YQG*9V^9QVL'<]O/^D4F7[F
MC$,<K2F$U!TZX2(:O<SV@1,-%]M[>J07Z< Y5U!J,W,8F$9KYSNZY?(R_ ='
M?LMOG*7FXLES^2OF.V$8/#59=!:&NB\0/Y+_X-R\_^GH_?NC#^^1IV*Z![,3
MF3O!'Y2/>A(1!'##?7;DQ72=9R#*;P'O;5R?1^^_$U,NIE0]937?PY_!ZNKM
M)PYS_ 6]?:!</S&*OYM<PCA'BCIRTH9FW_P>F,#SH8[GMG3M\=UQ(/,>*]/7
MR/;6KC+Y9X^5:$;'YK?0O0?NXSZ?3(_##WN#)O7> =X$+)L=7:,-"(^'<X@$
M#>D#"!>/M+=E:#)*WVN"MH0]INQ$#Q<L>&K^N'8VP+1OEQ^'O5U^M'J>6B)
M-CA0G8Q@>2T:8D_MQ?U>-"WS6Y.KO!>?C6A9YJ_S++Z]5J2GT2VO80\)*'NM
M8F_C3_NU&O:QLGL6@P5&;JO_P@;[L1?O4G7[FARJ/0B-T4J2BJ_JPV12.,#(
MY%N\$1\"YM(P D]YO.M+T&TPDN6[^,2)/#ZQ&[H!W[]X.(S)ZT"JA(L]+]O#
M!["\$DUJ ^[)^SXD!Y?16XO@]E_!*M#>YJ]9$RK#:0V'ZP8#S;T"@VQ/7AI0
M&LP2OY?AL+CG8)K9P6K82'2NEDK34.M?B*&P[UY4$AF5'M>I4C;8/:P3B?>^
MAW,]+<^]*!5V3R:J2%CFIF'FYIX,[DEU&/W^I\,4\Y^&TBC*2]OOJ3G4$K+H
M4\T5AV_L12WI.4+M)BF=WKF6DR4]N+:CZHRUU'G29,:A^31C[1!:PVE!!VU7
M:?_Q:$0'\=68WF#:T;Y'L++[8'K209M3UGVXV*E]-Z.Z_ZATC(-V:!^2PTA\
M^W\^97U'(_L=M%--R0TN352BB[04,1K0'H?<L5\%ORZDDT-&',=:5:?O=+$V
M34883I[K[H/9C^AX)+_2VE1=B8(U XQG)>J+,76U)$U'&L_:'%9RJ*OU:C/Z
M>-:PN[NFW2 CS1KI*6ED<.VMOJA&%\&(%80'X[R[ [\7S8&]@MUQ?0#E4?@2
M.]SW0^F/RCK0W7JT'F<XOV67DO8^1$?@[>R.]0.IC]-'VMVR=#?@,':V%BMQ
M,,&IQH@?($$-,)6A5W<_7,5VRW?(6*.Q!Q\('-B1^;C5Z*-9PUZ \#I:X1[G
M-IKUSP*W=;1TQ61'P_4>N&4=+<C>(PX7%]2-7?\0JH?S; +O_"P8]+GTQA^6
M*^>>-H"< KP;LQN@]OQ\]/[#T?L_(&-%U*JGRZ#I%?])M@;JI7/^* :'AIJZ
M%T,'328]*GV.J>]2U\#ET@,'BU13_F\G#@HP?S38SM*)[G$FV^AHY3@;@9U#
M61RIW\ N?\2%D+_X>][)]TL81-'I-@3!1@V&L__3-PT[O3V0F?PYA-_\_20
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
MKF-=^G\)/#_^E?]EFU,\F_<;0>"M+OQ0EUY5T6-$MK+&-C*[W_&=\ZRDDX7
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
M&NM/?[/.0V:G"#^:E-R*P][J6G<>I\^O-CD$7R<,O+C-%8L *!6,Q*B$A>B
MX C48^VSD*>G$1)&X^Y#*QS:-M1<N&[2LVLA8[D,GB\8)Q^$GQS7I<46Z.JV
MECQXIQ#ER:6PDKB.U)^']]Q5Q5P9328 &%$CQQU :&#K10E00TG# 7UQ"_Z8
M\A=6:M1H3;_U5J+T&U9\$W_W5SA;"'I3;]A=8$IB=1=/'R.-(GX0L@V@_"&
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
M*<]FD]&8-*I\O$5-AX27R:0?*-RU\KBTZCX#IH^J6+/*T*I<L\$FG  -U9K
M"IN.4C;,0PW<4)BM"XF4":C6 <)B4\IC 8KE-^PJ=-9BDG"QZESWI(U ^\MZ
M%CL@. ;HYSJ8V49=QA_]:'H&HSH1N2W5$6@)*K@1<_&O L<'@4GC&!DWU3XI
M?WM2'/#.CCU1D!EBLN RKHBF+&EL&?,0QBVPJ*3^;#6F2.>+E<02I?\^"N&S
M,FBHH.&@0I 3.UQP#S8/W@)%S$K)HJ+#X(Y>PQ\/(12K,'=5-G?HEQ$8\'C%
MW@KGDY@$Q.N-X26BF@J:]J^=,(>@>2B5">BOK?56VQ?L_]KRI:4AVPGXMHJ[
M-MMR!*\Y7U899(S?PYYVONK>5E\50P96I0@1[(V&&SCY %57>!'NUW?<Z7QU
M&[<GD;%=%O68G <0&(EW\H:Z5$01"E=!Y:/=J*OUI-CPE#^KJSRV6EFK4>1<
M5XCON6;#EM> 6Z@&?2+;;*1G&^.7JN$Z&_<?4'ZKR]_M(G6W+.K7P,&3+N-"
M3//"=B.T&_+K>;EE5]ZRS&K>J.NPEK^'@+E<;Q48*546O73#87T6*Y%>6WX)
M9EL-B*B\X,*).W^DH0]1]HE]B%_/M\$RU'^!Z+KGVR=G W^IO&;:T;0JWD)4
M<L \%S17?$S!05=L/REM.J0\)[SB%8&%Z3;#9HYQC;*ZNDFVU8 WC^.[][M,
M3<OJ0U_59<QA58>'4PUI+P9%'YY?XR*MW)ZJ'F.RR!V<(7/:P$G;WW@O8@F-
M4.9Z,=3"P$->?S$5,?8Z8>DZD-#*-247FG0=6R2B\(]V$8I826EL.,YG4'*<
MNDT=ROM2&>[1PZ=7I6)62.$%#4<6."GRY[90FG0C<^?*F-F#P)!Q45(4%47M
M\W/CGQ'_<+P%'J?R2*F]J R949.!&^'"DTIS,"S\Y:DUS;H/O)_\J#4WEE=V
M>1%BA#41K*7L59;Y3'TO"*4.#PF4$#I2GIQ4U7QL[SS&5XM?7\"<PT=O42K@
M[4>CXTU0P:"7_GD4>VNP.1A9Y!+HMF@[FG4<H:T2 3ZJLLL;=>U\&RKA4W,9
MIN9!0<P5+M<70A5W0W@$CNXL'@X^NX@+C5+AGH[O_:@-_^S)6-%*(;.D\7"?
MH+H.#.2S&J6NLLM(O6%SOXTO+.D]@F^L %<C.MD9_VK^@>U!:LA8YTU('[C:
MK)49+O?.E_P3TN4HKR%J/?"/XSCT[K=HU[L+(.@.K):!K/0@C,GEX=&=CC(X
M,I6L@!I"0#M7A.(=* PQ9%WQWVXJ\L_V(-#Q\VHF'\ X0CJ1UO_BPK#5/8;3
MWM<;%NPHE4&0AJQ>;66O[S>X2F2652M_Y<I:#W>+.-$#_!\<WD>'P0&_X=]I
MZ"T@2)7_@1^?]"^,EOH&X _>)H@<]DL8;#<HB$0+86^@;JU%QNH4N@8"UR57
M*A# LVV&%\@:8_!7]1BC=G2R^^3\(PA/F1-5Q17L0Z%[E56L:#$8;W&;HCE
M>_*\9OPG?_6G;ZA_].7VF]2T^(,;;,-%F7U0);XD*2X(S25OU+^S>PTNQ!]Q
M*O:-;]O3T]-WN'6P:Q_>O?OX%O[\%HE_\Y^**$FHSL@]708A)<>,!4]08IOP
M?Q)A529@GYP1.>A_O$TF.GZ6P8--KS)\AYIT7\S@$3D)PC!X B5P[M_0QX ]
M\I^OC%R0-LPDQ$G@<XXD>;(06\;@"9L6=RS'V-PGFC(!TF2^E&=R6JRY,KQ?
M.,]*]PXVC01+N8??]?ZE)1BFD$_'M0$G^0V:9IR%@6S<YK2><A7#N0_@A7_D
METPR#'%\-_5O3$4A\8/CDU2GB2\&ZVH=R-]$]/;_W]>"I%+_@&]/6/8AZ*3-
M$5 T24*4"*I3X(0-Q42Y!RT1][31N-7^B &('(' $"09@_P-+V <IK>SURNS
M;#Q\XBNC0F52<++7C@?.&-.HU9C/GP6?/EVA J[9Q5'(PAR&;/@X*.(YQDC3
M8C>WK8+/%'T" Q ^ CF>.I\9&6(T_/X772^"VUT$'\QI<,46ASV0&?:0*I%D
M.8^$$R9_$Z3[_2P[XD<>RT'XT!'3A?;=]M)<FBY1A"?)%QL'2XFV&RFT9Q6V
M',U#">S2ZGU7Y SMM[>+H5^NY)89Q&<$R!\!?:('(/P65$-,D]$XB!UV5<9M
M7,KMC-Q!S[Z9SI:?3("SVIQ3H?BPA.QTV& F!P;%&4EH3H<;\_15LF3IN"6N
MWUN1]" 4+WP!N"2[1LGA9"?_B$;9-N=0#0<V)TF3Z!&),20YV>D&?\-A>W\M
M+"P%RZQ"4+,*,W)O?1GR.(/7(07-1@G'TIMZ[+M&O=1V^I0<@5!!&NTV 7X=
M\FL@#HXR<=[3IT -1MZHX;XE'E<VY%J<&VLA;HKC%[0&YCUXX$)8NB$3#RQ&
M?'[QO3BZN?W27N!/"!.D3)"T1>&X0[Y8)4MO.-WH6VN<[0=GB:5=GH)6/C"#
MJK[#^-TN(CBYV+6D_$"KF41H(OKP[L,?7L1"R*T78QWA8"0937RK,_R(\5R8
M \\(C$GXH+;\GW58AR>[-.8K.,+;?>.*&@%R+XG-G,*(')*_ 2T+E]<C];=4
MY?=D$Y%U?#2</O[_(7.RS0OUF<8D<JSH]OWS9=J<7A!?^CSB2&3)A]**/'GB
M@Q$U&MQ&<CRB!B1\Q'XMV-&']Z?!5>RV%QS.;C^\YZQ]-R.<7&\.[2YFS8HF
M;,?BW'+F6<?  !Q@Y>DH^HWK2>%MP+;H=>"R<B<,2>($J1--?L:?;DLN@6[9
M8\H>.R!;VI#PP$4<55JPY?.*M(0-%JC-;#ZR$*&F"W0N=M<4\[9/F>.M(Y'=
MW>KM00H8F8,4R4;0GQY7<JN ,#$HSXBD303Q&1'DI\?@1F 7Q$X87^W'ZXR<
MT)7G0](6.7$8Q$!.E?USW]V;^7/Q:TN<[Y/&TZ4A5XV6<H^# =?XMWTC;C]K
M4&#!+60?+;<#\%\$+-[B^<F0(TC/TO.CE%D)I(@PFQT$+",=XJBPY8V@/B.>
M2J@@SEK\R>5J1!R0:'N_D'I$$/:N*77(M=Q#':%]K5A%HM9BSXL4/N7TVG6P
MH2<>AA=$8#.FSPOX$D&H &1LM!E3E>A.J$P?A@#A+:0:0 %.$<4E_+U37 HM
M^1:KNIJ\M?U681XBF4,:%S_30QG342."'GDC*7[+GUDZ&6;2_HXJCBRY-3IC
M+&-.\@1/CI$3"Y?HZ?GIG(M#CUX8^*B&,BY!A9O>K!> R(DE:Z$,N.L]>N[6
M8?#9828EO- /WN8N$ #9(OB[U:,"0\&UDPPV8<Y8*5.]!\IK.2Y=KR^IQ=1*
M:-5$A2#3^WW?&1>LA $N5G*2!&GV'T">1V12.9&'&@:3"/&$#RY>2JJ]<Z12
MVR^"\#JDCUZP-=6%-D?M6E:V(->AU[_FURT?<G,44717*K*F3M/[UU.%H9B#
M6-J7RT<:W@=%SO@(/==;]%Q[.,J,B#&GS;"Z0Y ]08V(88@81[$Y4W^%C5>C
M]6H+5D=M+FN%T"N( DDY+[4<VS+22!UJK@(LQ5B$X6"H*RS5<#I6<C<]QDL^
MX[E/Y"!$C$+X,$2/DV@*D^4XX^/8?Z][SPZ5@ R<1YB'9K2C(%]%7'!I-=RW
M:[Y8EB4DG%)G[87_9BK"%ES.[7((H!"K?'9"/0J>T5#7LK3Z!G7*:^K=,2@7
M/S[3XR\K2.@-1"N4L;=O//X3#O&MY5Q/0+$*?$C*[#RSX(N_W/HNWTU]B9(-
M'Z?W?>R70^722VZ;7(:K&!$S76W>1:F"'4V0QPZU_-/$/@5#?4N.,R:=DNRN
MR2] -O#KH%6P9,7K;S$*I6=.\\CDUGLQ>UZ>B&F+QWQZOHJ9O:'Q-O3G>+MU
MD6VA8W%#) SB,5S9EG(L>N&S'HW "$$6XZ@/6M[AEK(KTK"B7WQ'A$-3 =NV
MW>.E*MQ:@R!Q^5#$E62GPU=V*^_A!E:$9\3D\&RJS)E/3",.>WY.4#/_Y+!'
M)SSW5_S;H2'JX6N/'ZU.X@T%<6)0)Y*\G6C#;IF3A_-E,66^@0-REH_D:9K5
MT&E0DXZ:P%$)#ILQF!FI#]:CFWI=$Y99CB!9CIE8CYE<$&?@!1&/]J%!),8M
MC->KY6S3=I,W\\^0D#4LR3;39N:,K86DJ-15F1RB_Z,*J[QOL_KGE[< -P@4
M)\='(C +W"-)<:9^( GMWN-VC?HUOILOV=O^ZS;LX7AQH2U.CO%OA.(H4^,R
M8ZA2K)WWRDQ26O[8=7F;"*OZ(23+H^<O6KW!@BZ1A&<$24L<%B0^%:;8P/QD
M[XRDS@C>O2UCV/2-(:UCG*Y.R[<7Q-8=;]F+L)BMZ?"3 :$43,G8O!CPM0?,
M/5>Q,5*FA+1/]Q_;*$9G;1_IYWSS=#Q.,B@Q1GTIJY%&YK87J5-8T-1 WCW9
M)4VD6_[XR0G=.=;4B7[A#:&D@7##90J)XA_/^*VIRPP=G$O'IW"$<R#F/%,0
MP0"X8[23DR4XVQF1\YT1,6.$*9'N2S5K(J<MFA"8.(&9$YSZ5[X3YOE4Q(\<
MN6!+6*5'( L:I_"9!F):9 5#]R^$7OH05AF$NX)8QS:\*KH60C&Z9(&E9[]+
M0?I:B#P%F0R25?BE>+M;WP>LG6]>DB*"UF@GS6S.MEF]L[8X*#DC=S+ 3-Z@
MTV.PS$61Y\U2QIR()$*ETHP9[2HX:2:C5V14[$2X82E&;@4CZ4#7B7!BZE]5
M[%A2OA0F*YS_3TZ\#='\<$,W*L)S>1URC</;..S2;P<NE0#1"A $.=S.'H"4
M#693WYVH.+.4M>?)1E$G:D1 $/NA]\0"@<%7"/G7@>$Z@_L8#0;\V .?+,UB
M.8IASS9PR!<#./N >2Y$"J!!BI_=]DEO)E6BR$Z##5;!@;4<MW144[M,JOI
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
M&XK7:DMQD5TQB5@R;F7[#OG=11!^\1<TC!W/1YAT:;L%!U9[N"X]#*(X;=5
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
MP,%$;>N"H]K*XYT2M645[S6.R:\D-2C<3O\(N&I+ */,0KG1WGA75@W!J!B
M)",4?ZR]0R'\7_;>M3ERW%@0_2L*WQNQ=D2/[1D_CKV[YX.>;1VK6[62>B;.
MW@\35!6JQ!D66>9#W>5??Y$@08(D ()/)(L5<1X]*@#,3 ")?"?P^$M_<^.^
MNQLJ@!>=,_O96/,VF'3MBWSQHBGF!-;4T5"45(!@J()PM\E1/5!4F0U]W!2V
M+,F"IWP,D:VRFB);I2?<WOQ EAP;,3MF@K(,G-5$EY[',IW%/_6[[\)*'Z 3
M899)+?QY@AL?A?'/N?1#M=H! KJ#D+@[_T)<=?17>!@TJM+@E+'H/]+/L8HF
M5,WMY6+F"UW 2I-YE._]#=FJ@TQ66<96$1][N?DER8YYY_O#/ZD*.J%B.\\4
M$P)SA2^?$E5JE=U]9T\^E))+Q_=EW;E>YH,>P",'BV6.9LR0<ZY1=#N_7,=3
M ,]/&=0=_NIZ4#FQ>L)NW&CM!5'26SCEWV 26UW+*KXSE93*#3B"1;8H''X9
M98W5A[(2B69HH3[Y9<0[N,\0UZHYT1J._!PS^4> HD_\7BI+"8M-%,/7%P=/
M 3Y:N*5I["GX7KTX_]AH/ 3^[H6$>RBC_#GPUT-T14];:6_HBA\N/##Y9JM>
ML.37P)\'3MG!@L6^@]58I6EPU?/4Y*QRY\4G)\[>L7D@)MYZAEULAMU$#&$@
M)"NMN*<]B>P1HC*E'ZV)OWD.O 2^UDW'JKRP^:H7?-G1-:XAL>%VZ'EC45$=
MID:E] :E F6O*"_V^*3K( ;9FQ6T==F*J]C3]#G)]0OP Q?1:5E5'M9OD!FH
M7X7(N;X&NH9**1-&-_-N9EEB1]=ZY,(>YOW1\A27;-&)-G08C+P&9.:!A21M
M/@(;]Q0Y/.5..EV20*JBB9 $@A]X3PKW1,DK1719K4R%O^$&E^'"S'(3SA\N
M<OO@":#(F;40/%BW3X'5*L=_^CA"40DH-) G<LBKSJUXXO.]_YG"]?*5>._D
M4^#';UW/=%73R[Y[_) VUGCT1]_\2;$NI9F7NY$56>5%L=4QZXX41N7+S2:$
MX.ST_SVX/OEA +MXMMP'_H\+6/CBY6LP"X0\N[C(^GAMZ3<W5\2G_XA9 ;E"
MW!PV+3S[U$7V+=:?4C2>6\@,'P%["4=&@WBY8D?OC*):"9+_]_=__)YRF:QD
M_?^Z^/Z/'_[XQS_6*Y-\N/ #>M!M%,OIDR54JTV290/:J)+3;?-TY7%*R%@I
MC],)IP/+L'J.G3 VQ.R*[%P?(K NKAP/REG.!LM;?V.(XRW+11X;P>)I?-X[
MGL<SI 9XY=EZ%WQ!Y/![=D%_(YXW7"8P6VZZ_-\^T'O3 PZA5B]NG.IT+'8S
M<;R^A@.V8*JZ\271P^\I09_(?L#R(:+D-4K+\=YZ[CYKHMXO_JVR[H6X\&3.
M@,&1*S?(BD/G.U[&^-GQ)@STX['//*1Z$-M.'E!]X-'BLT'#JV @Q+M/8*%A
M;K0L9#4UWZZ/S 7FI:GY>3S><(&Q_#-B(.(T[L+Q\/04* J?$-"=.[85'S;'
M>LVQC@6LG?Q;HT6KZ\PSO1I<:FTT(QH0!T7(Q-XT@3&4^R3I82FU.2BB_?N%
M7'TF\<4:BBWF_4=_>W#<S>\NMD%8ZADU(T0KM@=NNP6,?EMJ$/([,6MB?@B6
MC!*&6(YLGF <M'.YFKQ3(0O[2\O"5"J5/;G1KW<A(3RI%[(5>O+A5&IH*&%S
ME96PN9"4L!$Z$5X(D->;%P+PWP'T>9T3EFVQZ,W@5M_S)EC<!&TKU9!^@#(2
M I4,,H*%8Q-,J.!\E[GC^DO2PJ(7?-5I9,K!T/%.!I,*$Q8QX@[8T?,TN:F1
M7LK7S$I09##<;RAT[I8EQ66Q!UE)JDM?+.B3A:A7 Q7R7KT\?J"GX8%')GQW
MD6:&77CN=K)J:"@)E-V%O+J8 .0',1-%A+/H*I-"RB(\'NH)!Q]D68%"RV(.
M\Z(W0)0_K>[")$)M412=O\FL/GJU(/+ !>$+H28M#U^KF#RZ"WP"[+VE(E[5
M1' 10%,L4M'M%*PB]S'9]ZOJ)BD7J6Z(^_\Q2PS[Z"D0HOJHE4IFHB""IB?$
MQS#HY\.&@/RYP<]MV TE!=C:<\--?.&-$)RJ,2DX^/Z5@(,/:E6]T#F]BE\4
MZUVP!2]@Q<F*8+0*>(4HW)<WJHV/$]_+ECX-A-N']OYU],0/H:$CQ%"^QA#+
M")D;JY#LW63?.XMBDZUWX0B?FAU:V5DM];]DX: 40[XT6+G9XK\;/:9@?Z#"
M&*M-5\M'*$JU>, 8\\SA(;1^H1Q+ <+%^LT)QZM69P/G;+<%'&7)&* ,5BKW
M_+9(U.;?'OTPK,)@Z\8//04=<+NY4(=X@A#*KO 6MD8H#4Q!O?@M+/,[L3'Y
M*LT@O[B,X]!]36*FW<?!!:2L0X&0@%</3@W'>)$MUVXHMN?BMQ[@C!?P4O>Q
MR4[5319$^^)\RRH&97](3TKG?+HL-)<UP\YN??['^SEB5GZ@,TRRHQ4[W\:O
MED%/UCM5( /_+@B9Z2P5A>"H=2XSDZ_)O,VI02Z3L-)U9X54.3%#Q&R=XN2-
MBA,S,WVB+WWXC\ #IAH]K'HYA]A:%WRQBX>+U32NH4%PJ%C$4ES>LD7'K>\Z
M"/SB8:INQ.]7OY\L7+2<XWP7,NUV?:2:%<N'<->9E[E79")?%>2U0[8N5ZCF
MBF#^%)52NS]<E)#EW^ A".,C>PC)VF67@O[;(RQ\P-^("E*_EZE8GSECIM0>
MQT#.J^,%DD2V.$/Q<N8HBH*?*9XCF^<@ #.K9WG\_H=7EN(P2'K']S_\]O5W
M%WQIS.![5B#GYTS6*X5)L50SR*J,]"QN4VZ <ITW0&%?^7#A;&.H\>-YP5=(
MGV-2E" 9YA56)BR"H[&)7ZZIL)&P4D!#<5)AR4DYS/A8&OHY;!% V^-4&G[7
MRT?/PA!9U2CHXEN$*T(SG_$SFL='UA/PC/+D6-[$55_ABK,!JIQMB3M%)Y$)
M-E]X;75$>34GRE2^LB*"0<TCABL75"^B\]U%^N&+APDBUB; EE\-H4Z%GBE:
MJ!QTN]V2=4S!2:U6+\XW" N&<"P?/&#L"M _/I.8RBD\+0&RD7KE_?"/<GLQ
MF/%8.X'RAS^P'XIO?[C(/IXW!3T9\GASHTQZ8HNP\SP-K9>A &*9)NF4/!CX
MW .9235B<D&^YD1E NES=OT&SP@4/[L-PR"\#J@0O6;) #W%>:&_1?8-IC.R
MKUP(GYE07@=5Q8G>F"5V0S97QR^L_5N:PP2]+N BI7&M'7$O!09 [MN6JBMI
MKE36#@WHX>3?^9_S1UGPY3&,^:>@-?=OX6L4<9XGQIJ=Y%^<<.<?7!_JM#)U
ML9__[LKQ?[W8)0Z5OF)"+IQ=2-(,HB")(_HZ,]^ELX>CCQFI;->*D!U8#.2-
M=#G,H,O+JY?AGZJ4>A\T!%;Q1-X#[QU.SKH<331UM%N?$.MJH-M$(<3U/KW
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
MLHB]1-(U+[YFG_S.2;]IH3S+V%B+X4SIFC/'*+OS_"L7V6<NTN\ K\_.?:F
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
MJ@OMT2#JOCFM0S\#!5)0L!&>#+61L#P"!= EIJ0Q;]:'X0"_>""4!3>K8U
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
M=@E@10N![*I&")H)]B6;3PY]@*':'.CJ#RN%-"P=A6(_*M5@0_9<K8^48[/
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
MOR?Z?WXVUQB86E4JC3A_A:&Y5*1:3=#,M9=^Q,%[@9/=A$,ZR%X6(2,:W-K
MI]#<!'O']14PR\=B*-KUB8#502T75L;9/QH54D:7WUR5*JF?8Q\5REP(<X4T
MP5\,M CT,,6A%8@.LKB]VJ7R3KS:NZ6?8V^?#3-O$>765EMC:LFN&'RVAVG/
M=W-K.OU9-YYOE[^E=99N6'S2BE"A.2WXQ7Y[9!)S=/N-A&LW4E8+:+^.O70>
M*1?5;J1V"K:]2UG4 )NG6P@;TNR@I7^^"T(>T=_AL-;7P(:J6!NM,ZZJ1; A
MFS*0+".-,",/99],1^W"B>0+84,ZNW@#8*U=Z>Q(.7U'2K4!UPU90]$[EL%X
M ]D4 "JP=I5V\8]4/5%0<;#E+9LS[APW9!RBV%:M24,VWBX7>2*')%R_P26O
ML3T=S]#.0XF2MCRYP<2S+4&]^,_?_WF&.OC/W_\%B9^DE9&ZW!NK; )>A!M/
M:TI6U+CE>MHB"&1D_2V%(<HINBQBE;PHTDLF)^>RJ%2SPH_8$W%0DA[2QSQV
MPA@388V968/5?!'Q!"WNJG!.ET4:_06=IKS"W.^:RD>RK.8IVI,DB?4[;;*8
M,VIS]\\BJE"T$!W:>90603WC8Z?W3RVBA$>ODZ;U?XU!OG<2O@8G1$"5+VW0
M"BAXLR('.'QJX@V:,'F2!T_E]EI$O90A&)^>?J==1L6,?G92,@:MS3+;JS^<
M0W+8$BYS?X\T?LQA*[G,^^H;^$J'+<0R]W-EXHE=1D&6*2WGX(<=IY1+:M&[
M]>=X%&5^WX&+M312:0XY7]=.]';G!5^CF:9ZT1O#9 (N&]S[><V[S%G2W$W0
M= &;S2HJ,-;;S1NC)YEJ+XPC.1P\=A0=CY_$>W\;A/N4I32DZAG.MMY:!IQW
M5/Q7;E%YE,4<'2X(4HF:'@_ZW+@>*95S>@F T*LP>'?IK;\Z?J&L1;@QEU0#
M>G=CET0-6S?*IZP1[H90+KEVV:FC__9(I@>*-985A#"::C\/3W@HS/-GZU-L
M]F49YN!V6.B<.-5A9[+FW/UW1K?0P/WHKH(P#+Z"[_C1?R+O@?=._PUB*KT*
M5)JL=9<RG(1M:^[]=_I:#; UNH7L71KGF#U+EVNJDX6$0DTO=WQ<>8X?0Z5\
M^M>#)NJ[Q0(#GS]9FR'H+A37A4 H5'_OWWY;DX@J 5<NTR@?_2_P^L(CQ!0&
MV9:.^"'[O>!(U"2IU09: UIM@/[HN#[P]"\^W0//_;<REZ_5$C9?L34A&U9'
M^8D<LMOUN 4>&2DX:[NY*%![=CS*\ELSFQ8K(%)?@?/[]$.N,CE#/P=3 ^*T
MMO<N-;9$]'T+,W,8O4Z[U,QR_0;_I*KW'C1O*,TIG?+@.J^NY\;'[Q5$F>KK
M*"X$."VIY$:/]$/@[UY(N+\AKR;W0#'1ND1!V6T)3";]L%\:) G-1$1W>A52
M!NMN;C+;:5:)G7(@YD)EXH'Y93=:;.AVTD*P-7\H%'<E:_>3B7AI4YM(H@/*
MA*<Q/F,O)7*[)6O*4ZB Q[C,$X7WT0=A'_X7WIYW^BHQ:R/X:]<@[]$?Z$:6
M_R",5)R1,;Z$3;-J/D$=%K!8=$80N)I9N'(XMEV2J*V]]=ZA>5F=HW)6FC65
MTO+E3DM8VR:NK#SZ$@FX28 VG&RO#ET?!I>ZWNL;F3F915::LE<%D28&8N"[
MD#^SF2V0/   <'QSVV N^\HN0JOYB 0R[NBC\(.7#YP*ZW68D V'MHWV9;28
M/<^5X"UYW,*K<>-&#& J2.[=9*]R0S7.F^?%SV\71><01([W,0R2 YW!T&.]
MJ,BF:$4UQK5O"X)U]>QQFU_GK(VG5BFK#<=U\RM7D[_5N8#8D0>T6=9N<0CC
M:DC("AXM[-[__->AG_M<2A4U:3#7WP6AJ$?+GGKCN1-X;G*9HGX1,S=*X5=)
MF]3SS%53ETV/+]BT$+[370A\NB,W0?(:;Q./RR9JVZ!Z"C(;DL1;/88-2?89
M?.]7R=UV;!ODIEAA<$4[]4H<*4,D8=YL/F] *=.KM3.0V=[30-HO/CU.E)@4
M</<=A'_YJPE*<_$ B&F5K<SV0WT3T8GN+WPAE+-XX^0UE0 J/9.E2*G'6Q?^
M7P*>;"0VP6B,\)!.LHX,?>>*+ S6")!7Q&IV-*DF8C/"-C^4'1; D>'0/J2]
MT@K9(%9\T&)+B/.6VL67RYJ<YQ%!BRCY-68(N$A=LXCI19#<),:ZTEZY]08L
M@I#=8[P7W<^P>P VD,TT\'G)I#0(F"Z=P!81R MYQ[N)1&,&10]:00\OX7L)
M4/6HZD5499Q*AFH7 ;Z4 SN,-*5EV8LXQ<-(4^/<A25O@*%<)K.P:K(GEDS1
MMN)9FZ2-1=!U:(-5*3MDT#JS>-^MJ82&R1)8%E$?>"!I0\O3%T'(8:2--HQH
MR63M(4.HLK*63,Z.]AU=/MA"7KVA)0>S'+1!:XCC)>[8(L5X27,+V:"VTL,H
MR7:+**@_C'C1)FMO%+(&E"'.@*PMQ0MUGN!"^, P8D6;;,5%G,X>3J/6Z9.#
M]HK >U*GLE*8IG0NA.QM!86IDT9':32#C9T,$"?1+A-U(8=[K'!'?=KKH UJ
ML(J]4[%K@_3;1=![4C[=.M=OC"U VO1Q(+NG,C-X(>VM1F#-K?*2QVB$A8YI
M3,6D&YH]G3:1,7/FG_\ZSB:@;-\Q@!1MGN ]*%5/C4V/DGB^B,Y[4W%L?:[[
M(DC=EF\;QRLO@GH#,-M1"AH,2OQ3X\N=RB(LHF/G) [MIH(.BZ#TF'%#@U64
M6,1.#,U#FK7M07O/HJ/G5+*;IC;&H'3&^_H-:X-3%>@X$[,#,74%0I;2*GD8
MBK:I3C).;V6IF]1>YU$P<7E!E+"WW*7* CUHX!SR=_30B4U(,Q(Y7M&--"?P
M+#J//H8[Q\^<7@5B:1F+E0!Z[CT046UHF#7,VO8*0_4!OSA!+W2/KSQUV:+!
M/X.#,PUZL$HRR>#;,EU5!PP<[3/YFA,FL\-!J^Z0SDBH)C-#'E9@D69X@3_N
M-@R!4]/]8KGDC9U<VRQAL8K85]6.47@SR//8$3;&I?M\\$C4Q(4&61H'Y^ER
M',K2T!!47A9347?RG@<+*>!NXA2RD=88PD/@^-'G(*8G+W0V>8J0 *.Y'-)M
M+1Q77K-]XLWN2*X3O\H%SMR/FL:#4_)(2KS.XSY+]K'A7NMFV.L!L'XCFP1B
MQY_(+O'@"T?9YC3=[?;KX+C7!MM8\INV)]>)W^W*,RWI6#J/^YS[LP210W^?
M=3,LEM2N =5T=;53<-Q2@\TINW-T1%C6A?P8!)NOKN=1_G1/O^'O7 CV+W6S
MF\<%U2!B?&7;K6&O4Y\)F$W7NN4B."YZITTN9<2U)-V),X.2_@Q!,9EW-?K3
MO"Y_%L 3\2PEQVO2HG4S[/7?,\BY,K_A75?#<=4-MK24.]65="=^PRO/_3/Q
M*9)B^^!Y7'">#&?TC"L&6[O697B:KJUJ-(YKJ=^(<F\"!=;+NG$\J']%0A9R
M,Z][5X6^X>8IAUN[>U6(FFZ?>CR.^]>T(:5"1VK<EW4']9U,YW$3"VQ8I%F.
M198NP#)J&9ZO@"</43.V.7=:U-Z+:@KWE0AWX\O;<U4<'&*8@U)ZR?M2>UG<
M9D7IDT8#W>X/7G D/.N!1>'/B^N(V\UR=6,W9)$(QL)XFQ7LM?S+MXSY8U?T
M1(<YH-GNM="\.R^'@X-TV/12>'1G8BZ+3P@):/-B"CG@+7QAZADVV\M6@6KV
MA6FFX+B\!ILC;2]TOI DCTJ]]RG!DAD&H@K%KR\]C[%?\4_-#FN#R=;NJVQ[
MS*^NZ6PLM[C-1I;:69E2:5EW&Y*SW#B/H>6I]VN71 ]DYWB?G#@66E7/X[IK
MD&HCG[=8P]KE-P*SB0>T7 0'*^BTR:4B3"U)=^*,0?1Y%P4V_C:OFR_I/]3T
MO&NG6+O7$JC,[[/A9!SWV&3+&EI,+?&Z5M-A,ZH\DQUP-*$HT;PN< 9_GM;;
M<'F5P^U%AE<@,K^U)C-Q7-FF32J%?IO0X\3OJN!Q2UXC\J^$+GW[/C\UN@I]
MT^54#;=W.2L0-5Y)Y7@D%[%A0\JUZY2XG_CUZY!GO0H\=SV[9(QSOG6V<\?T
M__;(K98OTQ5A.*??\=/),&'%X$K??XX=?^.$&\B#_&\27V[HS2,;/2)=5\'!
MO4;,!U><@ND8W0S)VOE(3M>%&L/S4<^H?V$!V?-Z*F::5U\DDO)M8%GC+']<
M[',C;(YQ!F[[%7'<=\,<^UZD.W$)T2S3?H[W_,7D#KPT'NNIG!GU<O%L(X1]
M.!IAU&4E'+=9CE[9;]&!2B=^@=7I]'.\M">25%^\.#EXUTD(%\#H#AM/QW%Q
M6R;;FQ-G65=7DXD\QZN\H/1[\427H:2 <QQ:WWS3E1"@345H-R8/[CN1'UUS
MM,U7LAEUI@)1[->8)<X;X=]K21R/0.]"#)TNT2+,6@.2ML5%G<ZV-6?2]F,&
M&8U_.%$!1UE,9([RS(E4%"D9PRKE,%J^U8T+X+CC+>N&M"'0LA24HE3('._O
MK N&%(<R)[_Y/95,P7$SS4N'Z/$_\6NH+ATRQWLX^P(BQ5FLP@:=6=:L';&7
M0,/&=M>TW6HX;G";XB.=Z7;BU[M5L8 YWOB%E PHSO=GPK/:626,EGQ /QO'
MO>]9$,"85"=^]>691W.\XY=A"!%7/*?L,]V8XB\O]%^1D\9??2+[5Q(J+D';
M50:.2OROP/7C'^FG8$-V(6&?E0+<.-P:%WJA:U/5M2#;Y3<W4I!;/A93YM<\
M4]CRYEXO8MN9*L,O#[).=8$#:8Z,:K1]6E.F2.[I/U602P8B$!4D](RNCL)_
MF<L-+99"==C@GY1YW@1[Q_5;'+ORO(&?@EOV=OMP7J!P0DQV(50V>PZHAJ)\
MQMK,Q+0%JS"X@Z1)(7?2--'6=)6!M^>30^7"?P0>-"^/'E;JW9 /'!B:CU2"
M#1WO*7FEBS]X:S4XBI$#P_-/LE\'S\<(F-QUH 5(-71@B$!?<*+H)WH3POPF
MW/L:P!IF#'Z>O'<GO/5W]%"3D#5PW[OTUNH.EG;&P/#]1.@.A?ZE&]XDZSAZ
MB#60*<<.#!.3Q]=4[>#;HP9)-71@B&ZB'[ZGAUA'G.H0'.IT1^TISUW1*BZ+
MB)'0JCVEM@!M2;T(\K4M15'5<!9!)+E:)ZO04=.EED6?FBHFM_VUT7T604!C
M[2AG_*9JRF+)IW@%#"B]")(ULS3%P[J(Z$ SAM9:H5X$[=KS,H5.OPAJ-=]#
MV5F<+GQT5@=)98X9@US>K"FE-!1EI/K3F52!F3V*4^S/9XH%9A8R3K&_G+E7
MB6QJ4U]&L+^>CUC08%?DI/J/\]DJT:MF(,WH]+<3C:\Q+A4ZQY";^1<,S2U!
M5=B$G;DZ9C^:.\+;K68-_2=ZA/VUZ[D,LL<MJ^G_[.Y\=^NN'8 _^YUB  +:
M';W\&?312W!-Q8_ <S=@[FDBS1A?0G!J\J10XY-1GS&P!^H>"I1DI$MS"BFA
MT_^\]:CXXV>G\(F\$S_1)P</L"".=ZI5T=RN/&$9YKH6E!R%O2S#&-/IO$JX
MT2+L,R;4&H(WCF&2P"NJUFLM/B?[O1,>BR)VQ4\W)'9<;U[2JVDI/C@/>5D^
M"H\F-K77DC;%0 $6;12D="@"0<RXK*(N'+KC:@CV;59U1$O4A;IY0. "PIJG
M2W?'=-,Q[,M#X.]>2+CG=0.CQW 5!KO04:)G.-E>=D?H;"1O@S:I1C_'^D$L
M(/H8!E&4E8)K.'Z*2?:0\;S@*V50Y"X(;X+D-=XF7AW6!MQ:K8%HWSZ3N.VN
M"5-P2+%#B",5[4ORJB]#2>TG%Y2"-7OMRB*H/5X-[ 5%=K85BN0W72]O+(*0
M.F6F%%6FEV,60:NQ^*3V_"["@-?G.C>)I6<"-A&PG2@\J(WT[RD]?;(#N_7)
M4%0K<8]B%PUBQYN)7?1RLW%3+ 4/T1PMHG8,2LJ$S52$*3[U!"3UG1WY7N:G
MU(X?&+9\98$.CWXN=*T(O0<;&9!F$T]9LYZH5&H8O+M0Q(H^ <SM>$T9CQL_
MT'>4J"QO^CDXF'B#KF5P<18AV)J0R? .+T+:,E3AC<2 07W-[R1\#69)JP8.
M=.*^9+.F7KE#63<H%:1F%AFI[!-57)C&@H/F*^!K&M8H-IC,1(56WMVK/5ZU
MJ3@868<S:M0*3?(FG+:T,0(AZZ?MQ!N]FCT8&DU[9@\$RQNA6P4(/I/PW04[
M*^N.DC9'O_?I@4G24$@*1B3_21NK,^@G;*JDE18(^OJ=JN'VFC4Y;OBCXR7D
M<;N]<CRP2SZ_$1(_N=&OD=@V,3_0-5-<!<<^*Z)Z4T] 5)A5H4W)_=8$,ZI&
M8SY"IRI4CRQ]VF+EG.:L"M:ZR<YH,GDD([3P6<A:V/GNO\GF,LH"Q77FZ(:9
M."38,:21BN%(\8B/H2!@RB@>X/4_*UW2V(7&>B7*U^[DSYS^F:]$P0QX\4^=
ML#T5_2E*%F(BUP2\SZ:=!#?SZT/[1=!PX--I*MPN(B-S(-JV$L$G*1B%(0#I
MWJ<84P5&=* )?YMCX!$'_T@?T@857CK4FDJ;0_/D?/T$A;FH8*2RI\C'V@?]
MIR#\]1X*1JY)U A[>;!]X*'[=?1&6'OV1N#+@^T##RR27<DG>CO#=V5DDF:"
M?23H/32XJD@>)AVC$5]SQ;U>A&;=FD85!K((Z;$UD2J,:A%B8&LB21CBH&(=
MWNC\UJ1B;'>,DI]X(^\%(?=D0N[S_33N1*N;85\:^(D>0G(3?%4%)4@&(KN
M9OUC90B?>*O8RFWDU:;20DJ.OW,A%88%[>2%J"#'TG?VLRP/I,'/^*ZV6\/:
M[>5@-F!A'\!5$J[?G(CG8$&MK\TO210S+T0#]/JYUE&["T+B[OS4:+@^,L>,
MQ^[&1\?U(6R\ 3^#!:PCV8#"SW^R^8)MR);*Z#%Y<-])[;K>?EM["?2%:$"E
M]3)8$>YRU7HM.7@=U'8;<9- @?@TZR?WBLH".X99V-ZV[P^.&P+)P6I<AKU
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
MS+-1=_:JHS(-YULOIBZV](&DK"LJIFPN0RHX99$ N7:@#T3MOIXU$D#K1XB
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
MJBD5[EZ*H$P_] 0'JER;4Y%P9K7Z%;8C^8TX"_>[3BQO&_8-5&//X58)Q&V
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
M'><G5KMXPF]I5G90;P#1F22-IKHS3>94P.$A82K#8W^0^\T.B(,HC(OJ.>Y
MJ<A:98OKC_%GJ_^D; 85\>26J]J933EC&0&AL@V*ASI#8M5^NF;Z3#;X$N6[
MFX+DE/=E=]^#N&#!82S:D/Z/I?Y+4'W,2A,?Q$,2TE_+(A2OLS1@=TIOK=7.
M<=^OK7V;):@7C72V[9LTHR\*96[T!>7E-Y0)UK+1WEK*;%[DGL5L\.#YK\H;
MO8H]%/09NB<8J-Z4&5#0O%>P4:%71H0O=<>X)7D^SP-J:TYPU),,&5?FYG.A
MT"_DDN(+Y;F92WU/]-+->8!O?6&$@I+GACXI*6C%K/,TR]1E]+L5]*_"L'2L
MW>*W# <1'T@'7.T9_?Q>_SE.FKH8;2Y&FXO1YIBMGJ$%I$(,]Y91?L)"4RN^
M\I(^IBP_X5W3R-5FA8O%0]DYN^7C]-\Q%C!TR1D833T_F\A"M?14U"\G[(O!
M!HH&=C'87*P4$RM=5L\F9!Q=K!,7Z\2<%\5,J+F8*[P&W)HJ[#BC;]::NM+Y
MQ= R=^*>8I_7A^I+L]P]\Y4N)IN+R<:I/MJVWQ+BK?G:4V/+F>O-Q_"N\U @
MCN?:CK6,BQWB8H< *DC/VXKQ[-1KWS2)!Q8 4WW,0_)929R:5'B<S,6;>U$R
MM&!K&[XD)(VCL"0YAG9IRQ?AP(M&Y)-&=/I6B]=*G";J[8[&N2WZ09K]W,71
MOJHNK&Z I9]WT4L]3Z:8B&-*&TU)A[K/K*@YG_(*R$;[AN^3TY^FY)NJ]VDP
M"L)V[=B\>TR7 A83I#J;4U*Y:H:G=K0E7];1\VCPJLKF7$R"%Y.@F4E0I;M
MQL_%#FAB$)(]/Z.2+VJYWG<T7,RA/W+RF*;UB4XN%N8)#<5^T/ ;]*)2&:_D
MSX07;%*=9WLZ^)[DV)J]EV+UJO="CM\43^!6IED? ?B\!^^PN8]OON4E76PF
M$I52=?8= 3]F"*^MH*!1Z2&'K"[.,(:LURLW=.N!YG#\JV '_LZ!J9(90#6>
M&&QRI B([)*BX6XMJNV.E#YCT5 P&Z<_I;-@"T9#VK[>HBT<[S\([HWS:W3@
M#/,^S=89?H_2HENF4P*/9A*4<U&:O<5C_35W:]CQZ)T<<3Y/="^=SBEGC"H4
M=&ZP)WC0ZJ G(L(38X2AHF5X,W3<\+Q0,7ZW%)3A@WW27.%0R'Z:VS&Y9A&@
M."AB-*=JT5A2J.(9LCK\8:N!XO :Q2@)\/,.XYPT3>\$BD5GI\+3%)P6Z1X7
M?\'KLR+%OE1D_D1_;2\^IC(Q\:;(LLY;V<OD+)O*L_]T&LM?Y3<HRPY4??P5
MQ>P1;LGL&XZVNYP_UUK:71S<QPB]1C$E%%[Q^SE/@Z^[-*9;)PRX_" VD@U'
M/2256V7-5&BZ]SS/HM>"6Y%>TD]IPF01NJ>8J]=EDP8?4:0@"Y;S_X*S_2U^
MS9MAGD#8KV_2>YRJLF-K>EWS;NTQWE7#$_"FHM<Q>CY&"6?)/M.TT%/(,M0[
M8QA&/*-I,U9&):X-SICWG WWBW5K7ZHGS*S9 7U8V6,U9$H_ 0?OF)>I1]:>
MP"EGOHV__A$C@I\8#*O-9U(6<?0&OOFXKX@F/$&*AO]VA0D![X4.G=EEO4GW
M^S01,%[HX&D9[U40I 55"IYP@*F"0,F:BDM#_OLS<"C-Q%Y1D%4]\^ ;R')6
MW&;9>@**AL'<5F)/63'Z!7WO"GO8GQ,SXS2M,W.-(@KS#7J+<A1W&) W .O-
M$X(+R2<)6-"?@0-KQH(HM\T*'(H&>P*GG._<,R,>YK4$J22$DFW4%/'N7E/H
M .K4S9Z@VSP? LD'.J!F_.B)Q5$D.*R[4U(*+O9LGSBDC#D*(G\ UO*CAX19
ML=/LT*77?P<.E3'CX6+>&AV8C#?D.M"!E'.=AZ1R'X@Y3Q-$/Y**H(.L4[OD
M3PATR P%H9;1<!,?E8#>,KQC;JMWW'8/H5=UM>&9$9Y K^5"ZPR_4=&O:@E=
MU^ <3*N _0MP8-7,B4>R?DIS/&!+/WD#GYPOC;26L23D!W!Z2J7 =6R8_^$%
M5*HCNTE)3OKWSAOHK-20AC;';\@OP.&4GZ*845K"LV2OAL$Y"5LVU&/<=<4P
MBR00@F VUQEHILZ; 53::0X+34WIQ1A5I)ID<0BGK;YX@H'N-BT*V!#O6C#2
MMUXT"T5V*\-%A%M63G$&R#BP0[CYT3 (5U!_]QQ6GE($E@AWK9@ Z"TPYNLN
MKZ8@TD5R(\<C'19R$L:P"#<N'NN^RIHX?$-,[LHY(-Y*[965#';8?&X89R"6
MJ(?#W#WQRO !\<.OFN(0\R;! 9+3,)AZM@T8)N@DJ?'O"_>MF^7N1A@X\,7W
M0C\1U.T8>>J-+\=PIDON)7/'RUB79+PS$'1>=R$<FDE Q!"A<]U %!'-<R@4
MZOWG$@E1.]%A'<VNHURX_=X0Y^+)T.VM%$P&@QUBV=:U+3D)RV5<GI:=RU=V
MC%:KN%1S]8Y>F=JKG3EQ(6"QF[:W._DX.+*E[F543'!-)Y6;5440Y1#GV!8Z
M4)7H%LUP+16*O*,JJ5 P?ISK/,AF=I#LW-91JO9=<1'RS-RNV6&U&7Q>5E+Z
M&43"LTY>[SJ"[_9O<7K ^ GSMT 1, 4^>\X&['66A@75MU"6H20_\+E4BXP1
M(=$FHE?-LP0=(^#YTU.KFO[F=!B#VM-S?(PBMZ'H\E'01LY;!OY=+ R&(!CP
M42$H^GDN?;]F/%+F!C::/;$$+F=O8RE<.G;B/4GYT'A+LJ%N_;NV]U,S";;
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
MUIZ&/NWM*'W_AW*WULS[RD0NP[5T*P2I8C/SJ'O0AVKXI!>*I*87W+Z^]N9
MC,-!?RU@6C8!'5X/X\^,7QP8<LXI'V5>&X\4H]'F D**6/>R1G3XB.4A[B,<
M@?J[0M[SO?UOBS?N'SR<AS\O/S[Z\,-]N'\+@LN(MX'I8KHZ<"7BEF/QF]GH
M'TG)?]N5H",G]UG><_@>H1Z*'QO4H>?]CCCKGUWLS9POC.5:>L\7QJ:4&5O0
M6@%,WKE/5FI:9FE/@XJ3<TI3F1%V:#62U9!;-R7DEL0/W3K[K?&\Y5N/$KMF
M9(HO]CK:]E+:;,-C,1B)H&0))AQ*O9 K'XEJW./+@<^_&O?BM<(_ 5!+ P04
M    "  Q@?Y8;\_J7+D$   Z%P  #P   &-E8V\M97@S,E\Q+FAT;>U8;5,;
M-Q#^W/R*;9AD8,9GW]F&A#N7&=>8EDX')]C,I!_ED\ZG1B==)!G;_?5=W8L)
M+@[T!3PI8<#FI-6S+\_>2JM>:C-Q\@)Z*2,4OZ%GN17L9/C!Z[2;0:]5/J)
MJY+H315=@;$KP7YXF1$]XS($,K?J>Y[E2ELB;9032KF<A? V7T8O"UC*K^M%
MU:QG51[ZS4,NHXQ++V5\EMIJ8*J6GN%_.(RITI1I#T<0J9?7((F2UHFP,/!S
M&Y6&E)!1,9>0C(M5..$9,W#!%G"I,B)KP:FR5F4H:]G2>D3PF0P%2ZS3X9;7
M:A8IM\PS.8E9F&OF+33)HPW=7U2'NA:<VC1,N/5BE&32*7F]%QSY4:_EUI[T
M6CG^882*2#VFB]K%>-/'6 FEPSV_^(D>R^/A,N53;J%,J[7?#_0X:-^G=KO3
M,1K ]&Z\'@PO)^=GYX/^Y'QT >^N+L=7_8L)3$9_/P3_F/1=^A^\A:OFN#EH
MPG@X*&(0= []QC/QOC^&_NGHW61X^@RIKPD_]H]@= :3GX<P[E_^V+\8CKW1
MAU^'OT%_,'$S;=]O/VU%N*O2/TU0SB7@@V2QY4K"@ML4;,K@_9QH)$JLX)*Y
M3114 H/A8 1#><VUDAFN)@(&2N=-V'<K7N\MVWX01P.5Y42NRD<:'0#"GBF=
M0>![[R%1NL#_5.(#DY11^&4N&73\!D:^W05B(.$"A]?6C%D\U]QR](A("L-E
MG!(Y8Z@^R[@QSG+\=9*46 8ITPSMO656Z<;:J@:<-V"B*(6?!"-&R08,4LX2
MQ$9=EE\S&"4)C]%$1') E5\-P#'+$_PGGVLSQ],%6 4W9<5MI&^BLJHX5PA5
MN45G/I>N9%PB5NACHJ=$,N.-EH*MH!\7$7>)V' +G,B4F6(P6\%'J188((R
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
M+I9@-0R87+"5+8I5KT7OUX<O>JWBY?M?4$L#!!0    ( #&!_EB\CA>O6@<
M . '   1    :6UG-3@U.3$X-S1?,"YJ<&>=T7DXU L7!_#?F&%F&&IL(;(,
M$2)C'=S&DGV9!HDLUYXAR\R4I:(7I1+)&$*+E"%BW.QT6^S[M3.-[%N,;"5$
MYN4^[_+/_>.^[_?\><YSGO-Y#IO!G@ .6YI:F (@#@  [1? '@&, 1@7%Y2+
M$P:%0N%P&#="D!?!PX,0Y1<X)"@A)GE,0DQ<7$I615Y*1ADE+JZ@?4+YE)J&
MAH:D/.87';2^BKH&^F )" Z'(W@0(KR\(FAI<6GT_QSV!P ) Y0 -S!(!N!
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
M !$              ( !     &-E8V\M,C R-# V,S N:'1M4$L! A0#%
M  @ ,8'^6 S ,U(&+P$ 7#H2 !$              ( !@><! &-E8V\M,C R
M-# V,S N>'-D4$L! A0#%     @ ,8'^6.#8D "8!P  /B@   \
M     ( !MA8# &-E8V\M97@S,5\Q+FAT;5!+ 0(4 Q0    ( #&!_ECI$L3<
MH@<  %TH   /              "  7L> P!C96-O+65X,S%?,BYH=&U02P$"
M% ,4    "  Q@?Y8;\_J7+D$   Z%P  #P              @ %*)@, 8V5C
M;RUE>#,R7S$N:'1M4$L! A0#%     @ ,8'^6"\F& BU!    !<   \
M         ( !,"L# &-E8V\M97@S,E\R+FAT;5!+ 0(4 Q0    ( #&!_EB\
MCA>O6@<  . '   1              "  1(P P!I;6<U.#4Y,3@W-%\P+FIP
79U!+!08     !P ' +$!  ";-P,    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>ceco-20240630_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:ceco="http://www.cecoenviro.com/20240630"
  xmlns:dei="http://xbrl.sec.gov/dei/2023"
  xmlns:ecd="http://xbrl.sec.gov/ecd/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:us-gaap="http://fasb.org/us-gaap/2023"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="ceco-20240630.xsd" xlink:type="simple"/>
    <context id="C_8117e764-0bc9-442b-8801-54318fd523c2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_8152dc34-4c69-4866-ad0b-23f71ea741a3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_826735e3-d4df-4c93-b413-1f84f74a82a1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_86e5f137-171d-4e9e-8348-f8a74cde016d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_87c1a47a-5087-4a49-bfff-6c535924f465">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_87db28aa-f981-49b7-a48f-0347e97ecd19">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_88a27ed3-b991-49ee-a1c1-3c521b4793cd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_88bff4ba-8317-4837-938d-f9fc37b50aca">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_8b3871f4-911f-4c70-a464-99f1e1215284">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:StandbyLettersOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_8bff0fcf-8302-4d60-af67-20a721fea746">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_8c1e9305-5b24-4036-b6b5-fe398308abc9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-07</instant>
        </period>
    </context>
    <context id="C_8d8d383b-3f59-464a-82cf-711cf15f8c2d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="C_8d9dd0fa-eeae-49e5-9562-18d1558786cb">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_90362dbf-1569-4da3-96cf-507dc082275b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_9304e9b2-9d3f-4661-b790-466476e30580">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_9467c45f-fc2f-4afe-868b-ad7b7b2ce2b0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_9751a76b-96c9-440c-b366-05695a199a81">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_99396727-8ad2-491a-96cd-c52300727ec6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_9a84b5b1-c68e-4e41-be48-283bf0ef0e87">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_9cc1a325-f1c5-4984-96e2-38072f792420">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="C_9d6d5895-660d-4016-8c6f-e82667ea9131">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_9ea56d88-7762-4e5d-a311-56d61c097dc7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_9ee6fcc3-ffb2-4d85-9493-f70f41857445">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_9f15121a-558b-4efd-9402-5a11935625fd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:GeneralRubberLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_a018f1b2-658d-4c69-b7f7-dbf160e42516">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_a0d70f96-cc7d-4573-a235-17a155aa32cf">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_a268f94b-df62-41e1-82fb-011408c77eb7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="C_a29fb287-14dc-43e7-960f-3c344ea1a8dd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_a4849349-5942-4bf8-99e7-2369f3306cf5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_a494d4bc-4b96-4d25-ace1-837f7c055e28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:NetherlandsFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:EuroDenominatedBankGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_a5d0dec5-c2b7-471c-8a22-95f23364f3a3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_a688024d-ea2e-4297-b1ee-c2f0c7a49b50">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_a9781b31-2217-43c4-a4f9-d607443cce30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="C_aa55f74d-96c2-401e-82d8-106e147d0edb">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_abfbf8d7-c1a5-478e-a989-5c15e4b3a4ab">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_ad40e8cf-f2fd-488f-ad89-bf9bd65602d7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:TermDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_b12d247c-0afd-4ab5-88b6-e0a38ee75cca">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_b3462824-949c-41a4-841e-4bb62a638246">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_b45e663b-5908-4c71-8f23-b4f823f678b5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_b4a042be-ed48-4247-a787-2fe0805c0213">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_b786997d-9425-44b4-b5b5-81b33cb5743d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_b93bb5d1-3363-47a1-b510-579f7a79a069">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="C_bafbfb8a-0c0c-4d5a-a954-15bda449f1b0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_bb1d996e-63d5-4441-8a7d-44f320c7e49b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_bc6723cb-1e5e-400d-a838-c78845df4645">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_bcadbc9e-14de-4605-8f58-6e9f45af0c4f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_bf0643bb-0950-4448-a697-c5c01067fca8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_bf1f7afe-ef76-4839-b481-e2da2412a988">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="C_bfa36cb0-caf8-4ef9-a454-7c3ba4fef4da">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_bfd1c8f4-4ec4-4cd3-9046-5b61623b7f3f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">ceco:FederalFundsRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_c00125b7-d499-4c83-8986-6a7b2d7fb0ac">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="C_c1e40902-c5cd-4a79-97a8-8c2a20315c32">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_c414f97d-9f9b-43c9-a9e9-bed9d1236d0c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_c42650fa-1a6c-4d61-b129-00391b2c2104">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:GeneralRubberLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_c4880db7-af04-4cdb-b304-5ce220b387aa">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_c6acfd3d-6aef-4cd7-85d9-236cd5a8ef9b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_c74d0fc9-94ee-4d75-b6d2-bff80b5c7d52">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_c76cd8a7-ebe6-4893-adbd-6bc97354a70b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2024-07-18</instant>
        </period>
    </context>
    <context id="C_c9b6c865-2af7-4b96-954f-843e672b4973">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-03-31</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="C_ca1a86ec-f09e-4c1e-b971-9c627d11bb26">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_cd0842a7-b2f7-4e1d-980f-d73684a2e49f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_cd2d2d4c-054f-42c0-96a0-c9e2397c4302">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_cf575e81-89c7-41df-994e-ef0940b46d64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:Ds21CoLtdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:CustomerListsAndTradeNameMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_d0c769fa-b926-46db-acf8-57a0ecc28364">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_d0fae3b1-654e-4bfc-b02b-060a8b2a903c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_d29c1624-8222-4062-9468-1ba65fcdfd94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_d3f73ada-3db6-4e21-8188-fd15ee65304d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentRedemptionPeriodAxis">us-gaap:DebtInstrumentRedemptionPeriodThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_d476354c-b060-4bb4-b416-b3a18342bdc4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_d4b4634b-c3b6-4896-8387-339a90a48e65">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_d9b6b72a-350d-4fbe-ac0e-addf1b303b73">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_dabb3e39-4cf8-4cf3-9892-ef27de1f36e6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="C_db1a5d1e-9a28-486d-acf1-ef093b253c27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_dbb189c9-894e-4b47-afa3-89cb992725cf">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:Ds21CoLtdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_dd6a1aef-4b8c-4998-8b9c-7c19aecf7d4c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_de8921fa-e123-403f-a89e-0f89fe00e956">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_e0d374a7-ef0e-4c6b-ade8-621855261bfc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_e0fc021a-2670-48f7-ae3d-aa548ef6c5be">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_e1612251-f088-46b2-acb5-991ee0c4d66b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_e1daf2f3-bc9c-41a8-b5d2-bff35648e89d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_e3b2c967-afa0-4d33-9e76-b5e7187e533b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_e685381d-ceef-4dcf-a7ea-fb320641518e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_e98084c8-b39c-41f2-b9e6-98c78fd6227f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_ed352a48-b629-4e4e-aefc-3e134a2ef268">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_efd85aef-608d-4037-831f-20a396347ca1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_efd90330-7aea-48a1-90ef-4f616e315186">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_f0805f92-71a0-4619-afeb-b2020cfd641d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_f10c1a04-d195-4d69-b158-bf0dfcb34eea">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_f1d8c224-eeb9-4076-907e-840c7028a2ae">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentRedemptionPeriodAxis">us-gaap:DebtInstrumentRedemptionPeriodTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_f2255341-43e2-4fe8-abbb-3d8614762ce2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:NetherlandsFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:EuroDenominatedBankGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_f83c2bac-f672-4efb-b825-bd21a4a20fb1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_fac8fa4d-a6d7-4a4c-9647-4b06d933ac64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_fbbc29e7-481e-4873-b4c6-62374fa0621e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-03-31</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="C_fcb369e4-0c48-476c-9cba-2ce136c26e27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">ceco:StateAndForeignAuthoritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_fcc152af-e5ca-45cd-b5d5-6d5289e49299">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_fdab6820-3f8f-48e9-a985-cb2338ff7e89">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_ffdbfa94-6ea5-41d7-846c-6f63a4e98665">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_00cd23d2-d68f-4afc-8c8f-2c64af7a8739">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_00d0f9ca-31ff-446b-ab53-b010c28709ff">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:BaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_025cc205-8d40-4baf-944b-7d110f8d7a9c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_02e5d8b9-5f2b-4ee2-8c85-ef3433d6068b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_04e1df3f-6f01-4fd1-8499-60824c9e78f9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_075aff28-c277-466b-aa65-832c445c2571">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_076ee2fa-372f-4bff-95d2-a35a66b18613">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_0a5b1628-ce6e-4701-82d3-2d742f925ace">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="C_0b9edac8-acc3-4238-814d-ca354a2ff827">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_0b9f9325-4217-450d-9cac-d1594309dffe">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:StandbyLettersOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_0bf01a3b-ab3c-4030-9a92-b3468b93ed4e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_0c5f4bc0-2224-4e45-bf01-f8c41f9559f3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-08-23</startDate>
            <endDate>2023-08-23</endDate>
        </period>
    </context>
    <context id="C_0c7d46de-789a-4433-8fe7-cb32db8159ca">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_0c970210-db05-49b8-8ba3-cb7aa9c78a5f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_0f9752f6-f439-49bd-8e82-a29a0fa2ef85">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="C_1050d7c0-8e0d-4f6d-aa00-1d66b7e53e4a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_11370468-b175-4073-8c99-42a16caa2ba9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:GeneralRubberLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_18cf0e95-6b2d-4751-a187-2d7efc7ed797">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_1a1e5efc-70ef-4256-b2a7-2de7d34fff85">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_20500dc9-bbe0-4a66-9012-b50ee4c1d26c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_20ad0766-ebe6-4ca3-a137-5724798774e5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_20af154e-2934-460e-b32a-3e33fd38f050">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_23439863-e7d0-4882-8948-606e7210181d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_2451a01f-db86-4984-805d-aa5fa459e97f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="C_2589d1f0-4ead-437e-ae19-c64f5ab99b2a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2022-05-10</instant>
        </period>
    </context>
    <context id="C_2706c733-d34b-4031-8842-25e6af288a6a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_289197ba-8252-4c38-b3fa-ea4502a004bc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_29308d50-6419-4d97-a577-ab1f6fccce01">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_2a293b5a-4932-40dc-a332-dfc222e16e6b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_2b122b27-701e-4e52-b9b5-83ead83e986e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_2b349de6-f0d4-4ecc-a8d1-0ccf096c6c1a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2023-01-01</instant>
        </period>
    </context>
    <context id="C_2bc42023-59af-4e84-857a-1aa2b7c1db33">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_2c8a4156-257c-4771-99eb-aa35394e53e8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:ForeignCurrencyTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_2cef0ee5-7a56-4b23-9cdd-ea77dcbf5dae">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_2d7e342a-22e9-4954-a136-8a3fa481fdd9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_2db0f802-8f6d-4420-8da6-1484e57c4619">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_2df8b23c-7594-48e2-872b-922e59cb77df">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_2edb3a2e-f9ec-4841-9ec6-21e75ef00b8c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentRedemptionPeriodAxis">us-gaap:DebtInstrumentRedemptionPeriodOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_30e73bb7-1ee9-4f4e-9bf1-ab554a2473da">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_30f7d23d-19da-4369-8fc4-1d3abf482698">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_312b96ea-ee3c-43b5-933a-d65043f455a4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_332373d6-9305-4dc3-b6d8-7c09bd6b203d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_3373058d-aad6-4f03-8c90-2c4065c64dd5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_349b57fb-22fc-4ee6-be90-faafd6702fe2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:NoncatastrophicEventAxis">us-gaap:AsbestosIssueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_34ed007c-7495-435d-b7f2-fc8513a05fac">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_36a6fe56-8876-42bb-b152-b02a8bbe12b2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="C_36e74a25-4e6f-4a38-91c6-c90ceb48802e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_3a0b3e75-3056-44a8-8753-0879f494583f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:GeneralRubberLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_3bd221d6-a123-44dd-acb2-9e1b69f0c61a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_3d6177c4-3607-4592-87d2-65dc15e8c82d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_3da024f4-e712-4f4d-8534-68f3deb4eeae">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_3e009773-c8ad-4721-9878-7588c65dab0c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="C_4035f7da-d67e-4954-be7a-ebb558685f77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_41a854ea-1135-458f-87da-1f44f2144c51">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_42d2b36f-dc80-4a87-ab71-5a910665ed94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_431f62b4-8e96-4f2e-bb8b-938899c3d8c7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_43496f44-5f4e-4927-92e2-12adb3779d75">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_452b3b23-e015-4639-8e24-8004aa284162">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="C_4589bd88-a00e-4db0-96ae-ae6be744a07c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-08-23</instant>
        </period>
    </context>
    <context id="C_45d06743-1d1c-4cf5-8ea9-acbfb7ee8b51">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_467bb776-a6b7-46e4-b2e6-701f8443e8a1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-01</instant>
        </period>
    </context>
    <context id="C_47c9b570-d993-43d4-b232-5e23b60d591f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_47e61e04-853f-4bf4-8a81-336c8eae68b9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:NoncatastrophicEventAxis">us-gaap:AsbestosIssueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_489abd39-3499-4133-95b9-6d787ce5d31c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:StandbyLettersOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_48e9a337-b814-47fb-aae0-b5faa898eb44">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-29</startDate>
            <endDate>2024-07-29</endDate>
        </period>
    </context>
    <context id="C_4903b239-8211-4916-a44e-128a6e7b7e35">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_492f1182-c2fb-4142-a569-68cb6768a4e5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_4ae7e10f-e6a0-4338-afa2-eb839c19e635">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="C_4b4b1b7a-f250-4c11-96d6-cbd07f793bfe">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_4db9219a-d453-46e6-88fb-2d3af9aa5d1a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_51832032-b6bb-40d0-8eb8-ee78b2df72e5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_51cfa482-c051-46b6-9734-7b94907f3dbb">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_52a7de7a-6f99-4e7a-8171-3348d1ebab1e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">us-gaap:CorporateAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_52ba983d-3382-4f38-ae88-680f1dbd23ea">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_5433d678-8101-4fb8-8a5c-02e55ea8ea0b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:MalvarEngineeringLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-10</instant>
        </period>
    </context>
    <context id="C_55bf135b-9f96-4b77-9981-d927010c0d49">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:MalvarEngineeringLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-10</startDate>
            <endDate>2023-01-10</endDate>
        </period>
    </context>
    <context id="C_55e1ae32-8285-46e6-b643-7e944a46252e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_589e9132-8dd4-4c77-be8b-d13a3828cf8f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:EuroDenominatedBankGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_59fc15eb-e941-4554-83ca-b523abc2fd9b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidatedEntitiesAxis">srt:SubsidiariesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="C_5b5a004b-7578-415d-9824-2c1459fadf98">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_5b7c892b-9787-4971-969c-53f51b5ba2b6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:EuroDenominatedBankGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_5bc08da6-a665-4039-90b4-16e030a96f5b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_5f2fd9f9-203e-405b-be71-f65a6734b28e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:BankGuaranteesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_629d617c-951a-49ee-86ee-d0d25b5ec4d8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">ceco:EffoxFlextorMadderMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:StandbyLettersOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_63361188-0704-4e53-a4f8-ee4bc36d4c95">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_6493674e-373e-4ed5-a3d2-50234a50e8fd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_6605e0a9-8aca-4153-b976-41c11dd21de3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsegmentsAxis">us-gaap:IntersubsegmentEliminationsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_67952f85-6a00-47cb-8268-1139b3f8fe75">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="C_6803e932-33b6-4356-8032-f6f6e04a2953">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_687e9c24-80ff-4b2c-bd54-7b7583b0e10c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_6902be88-f2b7-4b77-a96d-089486a1a910">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_690c7f51-86b8-4bac-8087-2a49f4809817">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_6a455b2c-8ed7-4695-86d0-e23d85800e42">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_6c1b1dc3-e0b0-4139-9496-f0133f3508cd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_6d00beba-a242-44bc-956e-811c4160406d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:KemcoSystemsCoLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:TechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_6f9a237d-a361-46b0-8346-bf1f6627c4b9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:MalvarEngineeringLimitedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_71573875-4b1c-4a6c-80f3-bb7e887c5bbc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</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="C_71fb9316-8c3d-423b-9ebb-a376ff80e2f2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:CreditAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_7205a319-ed90-4a5b-845e-c56b957a9a39">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ceco:ForeignCurrencyTranslationAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_7436e234-3623-461d-b988-e60995d6a771">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ceco:SeniorSecuredTermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_748ede76-abb6-4caf-b618-37efdfaf1d0c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="C_74a8fc1b-f6be-4fc4-a0b9-9d15cc2d0f6b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ceco:TermDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_759bff4f-8d73-4edd-8334-8502baad65ed">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_7923e4da-ce3a-46c9-be51-caf27afc8ef9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:MalvarEngineeringLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_7a1d8950-613b-4ba6-948e-7235f2ca2bf7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ceco:TranscendSolutionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_7a1e91ca-0af9-4201-a438-f7a7a000ccd7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_7a64fcc3-da23-4ddd-a578-c91b7c0573b1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_7af06f0a-64a7-4b61-9c12-491eb4dd6180">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_7b0ccbd8-cde1-4fa0-92b8-fbefef7f7aea">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="C_7e58e3b9-546f-4f3e-b0f6-c13ebf796a4d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:OtherPensionPlansPostretirementOrSupplementalPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_7e7c49f2-927b-4b0a-8e2f-ab88b55fd2f5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:IndustrialProcessSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="C_7e9ff9e2-ee53-427d-add7-c58910902d9d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_7f19d873-0ea9-4575-9270-315df0f6b819">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_7f4dfa60-c725-43ba-8f56-61a75aa5d622">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:IntersegmentEliminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">ceco:EngineeredSystemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <unit id="U_EUR">
        <measure>iso4217:EUR</measure>
    </unit>
    <unit id="U_pure">
        <measure>pure</measure>
    </unit>
    <unit id="U_shares">
        <measure>shares</measure>
    </unit>
    <unit id="U_Case">
        <measure>ceco:Case</measure>
    </unit>
    <unit id="U_USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="U_UnitedStatesOfAmericaDollarsShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <dei:CurrentFiscalYearEndDate
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_670639e1-8893-43de-8241-a277c49e9ecf">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:AmendmentFlag
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_0a4f2847-5ef1-438c-8c98-23f8d0365ad6">false</dei:AmendmentFlag>
    <dei:DocumentFiscalPeriodFocus
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_698d59e6-1e4c-4bac-b023-a37d3e54546f">Q2</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_e77e693f-32ac-4df6-9703-bcbbb194cfc2">0000003197</dei:EntityCentralIndexKey>
    <us-gaap:CommitmentsAndContingencies
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      id="F_a8f3fb7d-309a-47bd-a3e1-a48e7dc59773"
      unitRef="U_USD"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      id="F_01acf33f-ecb6-4b4f-88e4-a07bc875ec36"
      unitRef="U_USD"
      xsi:nil="true"/>
    <dei:DocumentType
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_47192733-32ee-4b58-a945-0265b948c14d">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_4d376b0b-23d9-4338-9bc0-9065cf594a51">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_8df00ae6-bdc9-447e-b20d-02941fbfcda4">2024-06-30</dei:DocumentPeriodEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_8e9546f1-5ffb-4706-8aad-f249f2c9ab89">2024</dei:DocumentFiscalYearFocus>
    <dei:DocumentTransitionReport
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_00811f62-8870-4599-a638-3b52de64ec09">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_246054a5-3f12-4165-bad1-643dcee5c8f4">0-07099</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_d7d9713e-4b4f-439b-8f2b-4ef8ac1b9f8f">CECO ENVIRONMENTAL CORP.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_d11fb5af-8fbd-43ff-b841-bb2729406eb8">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_bbfd2d5a-3677-4d81-b085-e9b98d0fe8de">13-2566064</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_7e830075-b36f-4514-96d4-14b5542fbe97">14651 North Dallas Parkway</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_6bf9f3c4-221c-4075-b1e1-8ad4abae94a3">Suite 500</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_24109ade-e26e-428f-870e-c17de72dd66b">Dallas</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_ca8568bf-2785-4e6f-aa36-0081ef6e4633">TX</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_fb3fc3b0-c8ac-4a47-8ddd-e2b137b1d163">75254</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_bac7876d-cb81-4504-ba47-1058c3a383eb">214</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_4de02dbf-2b6e-41b8-a7c7-d47693648e9b">357-6181</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_8303f60f-12d3-49aa-955d-5442688f77e3">Common Stock, par value $0.01 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_d3ab1470-20fa-4fb0-bc00-d88b14ae193d">CECO</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_000f88c1-2cf7-4b13-8809-1c161a90d258">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_795d9815-4e6f-447f-8c0d-526a103d675c">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_7e770f8b-5dc3-4c38-a0b5-91f803881d16">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_326b5e4c-b911-4464-8ac1-42343ddaa9af">Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_e666ca7e-164d-446f-8295-00a04a003efe">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_10b34610-c49b-4363-a665-f135f6c9780d">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_0d7f6525-0b21-4e43-80bf-5da315dbedb1">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="C_c76cd8a7-ebe6-4893-adbd-6bc97354a70b"
      decimals="INF"
      id="F_0fe6e30c-f07b-4cec-85b3-dccceea69ba0"
      unitRef="U_shares">34960522</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_cb46eea7-bcaa-49cb-8429-d1590312f656"
      unitRef="U_USD">36523000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_fc49dc48-25e5-49b2-a4de-fcf7aae6da8a"
      unitRef="U_USD">54779000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCashCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_e5cf3550-6ac4-4d0f-a785-b2671c70e712"
      unitRef="U_USD">391000</us-gaap:RestrictedCashCurrent>
    <us-gaap:RestrictedCashCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_f48a2ab4-7a4e-4216-bb96-066667715a92"
      unitRef="U_USD">669000</us-gaap:RestrictedCashCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_17798182-a914-4319-af8c-9a727236f024"
      unitRef="U_USD">6582000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_04b227bf-b8f5-40b0-baeb-f9bb86818b68"
      unitRef="U_USD">6460000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_02345cd7-46e5-43cc-8826-1d22743757eb"
      unitRef="U_USD">126974000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_737f72a1-5c42-49c8-8d7f-e791e66d929d"
      unitRef="U_USD">112733000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_1e6ccf7f-6d13-4c23-9a70-e7ba61c11b6c"
      unitRef="U_USD">55378000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_3e1a2553-58c0-495b-a77b-2eded0e9c753"
      unitRef="U_USD">66574000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:InventoryNet
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_9f2419a9-4faa-4d88-861e-33fb01ac97a9"
      unitRef="U_USD">38475000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_bea88c85-40ad-4aeb-9b94-1f6dea4a9d87"
      unitRef="U_USD">34089000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_619b4b52-d020-49bb-9155-97bfb687e1df"
      unitRef="U_USD">20414000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_70675812-e16f-4f80-ba08-eb3d06bd8f71"
      unitRef="U_USD">11769000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidTaxes
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_d91bd286-8225-4dbb-98cc-badf73d474f5"
      unitRef="U_USD">3215000</us-gaap:PrepaidTaxes>
    <us-gaap:PrepaidTaxes
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_7d2e801f-1d22-45ba-af71-fc0734d5d9a1"
      unitRef="U_USD">824000</us-gaap:PrepaidTaxes>
    <us-gaap:AssetsCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_23685158-3341-4f71-bbc7-b2171b81ac7c"
      unitRef="U_USD">281370000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_c0fb3aee-a500-4156-a0fd-b8b72c5cbe7d"
      unitRef="U_USD">281437000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_2f2e3271-48eb-47f4-9139-f1f367cb0081"
      unitRef="U_USD">30290000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_40aeb7cb-3ac1-4c61-8086-c8ddd7858370"
      unitRef="U_USD">26237000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_94149914-4b46-4728-ad07-25781bd2109f"
      unitRef="U_USD">14137000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_b87283f8-19e4-45b4-948d-fa10594ac2a4"
      unitRef="U_USD">16256000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_0599b459-506c-47d3-986e-6ce4a505f27d"
      unitRef="U_USD">211144000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_f049f931-0d0c-4fab-8fc3-0db1b2c11a37"
      unitRef="U_USD">211326000</us-gaap:Goodwill>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_deddfeab-6683-4c49-b821-ed1f81b17435"
      unitRef="U_USD">46086000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_07516010-9369-4e49-a94d-4f7bca0d37a0"
      unitRef="U_USD">50461000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_b8f2f11e-f470-4e8d-84ee-e7212ec7dd6a"
      unitRef="U_USD">9522000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_e311822a-e6cf-41d5-98cb-2773693f9c7f"
      unitRef="U_USD">9570000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_6726dc9c-1a4b-4afc-ac0a-6e573ad368ee"
      unitRef="U_USD">263000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_ca06b762-bf26-420a-bd8d-e4928d9d79cd"
      unitRef="U_USD">304000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredCostsAndOtherAssets
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_8d0b921b-5a7d-42c6-a4ab-dceb1fa9b2d8"
      unitRef="U_USD">5321000</us-gaap:DeferredCostsAndOtherAssets>
    <us-gaap:DeferredCostsAndOtherAssets
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_0a51d511-090f-4ec4-b3db-f50d5b0b1938"
      unitRef="U_USD">4700000</us-gaap:DeferredCostsAndOtherAssets>
    <us-gaap:Assets
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_91a97b08-3908-46aa-9f82-d4f9a64af0aa"
      unitRef="U_USD">598133000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_9cea06ed-d910-4c33-81a9-3b19c8eb7109"
      unitRef="U_USD">600291000</us-gaap:Assets>
    <us-gaap:LongTermDebtCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_f0669ff1-6f97-4d40-9c72-b27b3444babe"
      unitRef="U_USD">10580000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_60b54ee5-0344-4d1f-b74b-1fabdfb57cea"
      unitRef="U_USD">10488000</us-gaap:LongTermDebtCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_2f4d5bf5-f44a-47f4-b967-57828f202b2a"
      unitRef="U_USD">90944000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_1f14635a-e4f7-43f2-83a5-641eeb75ab6c"
      unitRef="U_USD">87691000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_dde7bd81-731f-444c-a795-8a5bcd1e3ff3"
      unitRef="U_USD">44736000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_9b96ad09-a95a-4be9-89d9-6cf7d468f90f"
      unitRef="U_USD">44301000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_18d85b9d-9906-4327-a4c4-77a530091372"
      unitRef="U_USD">59851000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_d28dcba1-1aab-49a5-854f-a2264bada8df"
      unitRef="U_USD">56899000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <ceco:NotesPayableCurrent1
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_3164f65b-d25e-4a32-a3bd-58bc1c8d2e74"
      unitRef="U_USD">0</ceco:NotesPayableCurrent1>
    <ceco:NotesPayableCurrent1
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_0a2a3cf7-9dea-4f93-9f2b-3efa48cd1e86"
      unitRef="U_USD">2500000</ceco:NotesPayableCurrent1>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_d7270789-8b6d-48a3-9c50-30190f15287a"
      unitRef="U_USD">1212000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_1d73d802-42b4-4540-86ac-774f6576a572"
      unitRef="U_USD">1227000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_2d88c8dc-f4e8-401d-a5d5-dc3d7f79a5c7"
      unitRef="U_USD">207323000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_d001a64d-b83a-488a-8587-e4dcaa22d666"
      unitRef="U_USD">203106000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_585296e3-e582-4e13-826d-430215b31246"
      unitRef="U_USD">11196000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_4441ce0a-d734-4fc0-8d54-7dc2c06b737e"
      unitRef="U_USD">12644000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_1b5f7a3f-023b-4996-8b59-3a0e4cb6481b"
      unitRef="U_USD">120246000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_03ce7704-561a-4bc6-9006-03772b2b3c5d"
      unitRef="U_USD">126795000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_2b7ea303-5041-4c0d-a658-89c017e12a01"
      unitRef="U_USD">9949000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_adb57f8d-bf1f-4109-b405-97bfccf83446"
      unitRef="U_USD">8838000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_74856f49-9bb2-4d2c-b9bb-afcf6f39a35d"
      unitRef="U_USD">9607000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_ae601f0d-13ec-476f-bd2c-4ad816a533a0"
      unitRef="U_USD">11417000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:Liabilities
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_6a610277-20d1-438d-94d9-c54fac0fd96e"
      unitRef="U_USD">358321000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_b1eb151f-8598-4bcf-9066-98a6949d3edc"
      unitRef="U_USD">362800000</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="2"
      id="F_f487013e-6266-486f-8c3e-4d8826a3ba52"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="2"
      id="F_c8df845d-6293-4f96-818e-aae0dd560c1e"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="INF"
      id="F_588e6cb2-935c-44eb-998c-d8c483997779"
      unitRef="U_shares">10000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="INF"
      id="F_f940f9ce-e1dc-4995-8c7a-e1dd54ccbe3c"
      unitRef="U_shares">10000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="INF"
      id="F_210fe817-b008-476c-9369-25280d082d03"
      unitRef="U_shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="INF"
      id="F_26155e10-5f63-4ef6-a88b-1ea508de9a3e"
      unitRef="U_shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_63c5681b-7dea-409e-96d3-128facee381b"
      unitRef="U_USD">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_c7e7abbe-37e3-4264-a716-04797b538674"
      unitRef="U_USD">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="2"
      id="F_b32581f0-d3fd-4d3f-8285-82651dd6ca00"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="2"
      id="F_efa248b2-bdec-415e-ba49-2336061c459d"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="INF"
      id="F_18da8c75-adfa-4a74-91ac-c90e97ec6f37"
      unitRef="U_shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="INF"
      id="F_81c17c71-6e3d-42a9-a413-88ae240eb32c"
      unitRef="U_shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="INF"
      id="F_04ec20f1-2533-45c1-96ac-d808a1e1a8d7"
      unitRef="U_shares">34923701</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="INF"
      id="F_3a2fb824-1f2e-4d80-98e8-a485cae65c8b"
      unitRef="U_shares">34923701</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="INF"
      id="F_f37c54e3-c65a-49a3-91a5-72548f89bf20"
      unitRef="U_shares">34835293</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="INF"
      id="F_8b5655e0-4956-4073-9220-d1b0d8ed46fb"
      unitRef="U_shares">34835293</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_6d46c476-4b9c-4f10-aab7-386175ce8db5"
      unitRef="U_USD">349000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_a8957c7c-d526-48c7-8a60-c2e32fda88b6"
      unitRef="U_USD">348000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_b9bbdc3f-4a8b-4f40-887b-72bbefd6f869"
      unitRef="U_USD">251560000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_ace613b5-23b3-43f5-b5f3-36c6b44235e6"
      unitRef="U_USD">254956000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_03b55e02-5c0f-46ee-8701-0edef027cde4"
      unitRef="U_USD">-394000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_22a179a9-a014-407e-9eef-3ef6476a5eca"
      unitRef="U_USD">-6387000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_295ccc80-ff73-437d-8d19-851e2713bd59"
      unitRef="U_USD">-16476000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_26ef0e94-4ea7-4d95-928c-16d71db31f00"
      unitRef="U_USD">-16274000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_7e119288-dd86-4903-bb5c-9f6e2f8b6639"
      unitRef="U_USD">235039000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_2c9dff43-c152-4cc5-9fe3-553999e7a596"
      unitRef="U_USD">232643000</us-gaap:StockholdersEquity>
    <us-gaap:MinorityInterest
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_ed2b2ebc-c455-4d43-bdfa-49574f98f094"
      unitRef="U_USD">4773000</us-gaap:MinorityInterest>
    <us-gaap:MinorityInterest
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_dc3226ec-8bb3-481a-b999-5c8eda2bf16b"
      unitRef="U_USD">4848000</us-gaap:MinorityInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_bc52eac3-7799-464d-b8bf-33474d7f3b3f"
      unitRef="U_USD">239812000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_8718fa83-c44d-4ee8-90da-d1a8fec24f4b"
      unitRef="U_USD">237491000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_e688b1f8-0c1f-4a0f-bd28-61d974e92862"
      unitRef="U_USD">598133000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_589f2f7d-461d-4c44-b7a1-ddad46668852"
      unitRef="U_USD">600291000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_79d93cbc-fe78-41cf-b503-5b78eeaa4f6c"
      unitRef="U_USD">137522000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_d4fcf6b2-6ecd-428d-9d99-740410b7542d"
      unitRef="U_USD">129181000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_88a2d893-ef4d-4a43-8cc2-71d2e5c96c23"
      unitRef="U_USD">263854000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_96930a76-7d28-4a70-bd8f-ce23ed7ceecb"
      unitRef="U_USD">241744000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_d1720e14-cc5f-4ed2-9666-06fff7ba9ba0"
      unitRef="U_USD">88475000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_45c648a9-8b1c-4258-b725-c25e51a9fdc1"
      unitRef="U_USD">89364000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_d1db1f33-9c16-407c-9369-c6ea39d2d609"
      unitRef="U_USD">169675000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_135556e6-bb77-4a3e-a80d-fd902674dfcd"
      unitRef="U_USD">167034000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_0534e7a7-d71e-400f-b05a-ac788b9ab9a4"
      unitRef="U_USD">49047000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_0fb57d27-5aa8-4be7-8391-68538eb5e941"
      unitRef="U_USD">39817000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_6aa50ff2-5a95-458b-be71-5f2348762e13"
      unitRef="U_USD">94179000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_b5b94905-dd73-4684-aff3-d88e782ff94f"
      unitRef="U_USD">74710000</us-gaap:GrossProfit>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_9ccf20ef-e38c-45d7-bf60-01f336c000be"
      unitRef="U_USD">36465000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_eaa5c865-451c-47bc-b949-d869ebe993b4"
      unitRef="U_USD">28451000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_7580c1ef-f8aa-465d-9324-c94ddc870bce"
      unitRef="U_USD">71372000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_f7955282-2f04-4e35-8ede-2de7aef0de06"
      unitRef="U_USD">55644000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <ceco:AmortizationAndEarnoutExpenses
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_da925aaa-51bc-44a0-ae8d-7a7599c10311"
      unitRef="U_USD">2210000</ceco:AmortizationAndEarnoutExpenses>
    <ceco:AmortizationAndEarnoutExpenses
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_57d7022a-1631-4cfe-bcfe-b0d622f47ca7"
      unitRef="U_USD">2273000</ceco:AmortizationAndEarnoutExpenses>
    <ceco:AmortizationAndEarnoutExpenses
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_50375ef5-36d8-4bc5-af39-bae1b6c1d364"
      unitRef="U_USD">4419000</ceco:AmortizationAndEarnoutExpenses>
    <ceco:AmortizationAndEarnoutExpenses
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_a4bf9c23-7a6a-4c8e-b81e-9d71debe0ab2"
      unitRef="U_USD">4020000</ceco:AmortizationAndEarnoutExpenses>
    <us-gaap:BusinessCombinationIntegrationRelatedCosts
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_ddb6d285-b47e-49e8-af9d-d57116a0c66d"
      unitRef="U_USD">476000</us-gaap:BusinessCombinationIntegrationRelatedCosts>
    <us-gaap:BusinessCombinationIntegrationRelatedCosts
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_c1f55884-c164-4007-a588-4dd17c413276"
      unitRef="U_USD">332000</us-gaap:BusinessCombinationIntegrationRelatedCosts>
    <us-gaap:BusinessCombinationIntegrationRelatedCosts
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_f7a6e6f0-28e6-41ac-b939-4f98224df9f4"
      unitRef="U_USD">666000</us-gaap:BusinessCombinationIntegrationRelatedCosts>
    <us-gaap:BusinessCombinationIntegrationRelatedCosts
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_04ddda85-c07d-4d00-ad5e-5a2ee8bb56db"
      unitRef="U_USD">824000</us-gaap:BusinessCombinationIntegrationRelatedCosts>
    <ceco:ExecutiveTransitionExpenses
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_87ab962a-7a70-4bd0-adfe-6daff2624c11"
      unitRef="U_USD">0</ceco:ExecutiveTransitionExpenses>
    <ceco:ExecutiveTransitionExpenses
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_256b804f-cd3d-4bb8-ac35-9f90903cc4e0"
      unitRef="U_USD">158000</ceco:ExecutiveTransitionExpenses>
    <ceco:ExecutiveTransitionExpenses
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_e4255593-5acc-4ed2-bf4e-45f0fe4d016b"
      unitRef="U_USD">0</ceco:ExecutiveTransitionExpenses>
    <ceco:ExecutiveTransitionExpenses
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_3ac75fe8-b9de-49ad-a38b-a51a5bbf8fe0"
      unitRef="U_USD">158000</ceco:ExecutiveTransitionExpenses>
    <us-gaap:RestructuringCharges
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_cc858246-80fb-4b72-bcca-2753e4899d9a"
      unitRef="U_USD">414000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_c1109bb3-9e02-47ca-99cc-44d05563a519"
      unitRef="U_USD">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_b2d8161e-6329-40c2-9d0a-b771ae93cc04"
      unitRef="U_USD">554000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_27bd3587-54e1-45c3-88ed-9860d4424113"
      unitRef="U_USD">0</us-gaap:RestructuringCharges>
    <ceco:AsbestosLitigationExpenses
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_ae336be7-ee15-4c9a-9d06-d98653fcd5e1"
      unitRef="U_USD">225000</ceco:AsbestosLitigationExpenses>
    <ceco:AsbestosLitigationExpenses
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_f07593f6-6f79-4e6e-8489-f965ad5e6f33"
      unitRef="U_USD">0</ceco:AsbestosLitigationExpenses>
    <ceco:AsbestosLitigationExpenses
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_1ba2d2c1-6179-43ad-8063-a51fad5fc14e"
      unitRef="U_USD">225000</ceco:AsbestosLitigationExpenses>
    <ceco:AsbestosLitigationExpenses
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_12b24bc4-3097-43b4-bf2c-31da12bab009"
      unitRef="U_USD">0</ceco:AsbestosLitigationExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_38ad9a1a-cd16-4b27-bb03-d231f81c854b"
      unitRef="U_USD">9257000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_1991335f-0d05-493a-81d8-9a4ea1e1b320"
      unitRef="U_USD">8603000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_0b8613ae-926c-4d8b-ac9e-4c321449fcf1"
      unitRef="U_USD">16943000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_cf8efcb5-8657-4a82-b92b-d0cfb26bdb8e"
      unitRef="U_USD">14064000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_a89912a9-7faa-48b0-8a33-b0c8daca5422"
      unitRef="U_USD">-679000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_203d709f-f683-4380-8e27-ef35bf3bd381"
      unitRef="U_USD">121000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_fd49cb59-4ad5-4f67-b0c0-2204be4e6be2"
      unitRef="U_USD">-2192000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_4b7b43d4-9838-4b05-afb7-0189ebf9fcaf"
      unitRef="U_USD">-453000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:InterestExpense
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_93de46f2-4eb1-44a7-9732-8c79f03c837d"
      unitRef="U_USD">3254000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_3740ce29-ec77-46c1-907a-ef3bd964c1bf"
      unitRef="U_USD">3750000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_43a1e995-b973-425f-a46f-eb2f684c4375"
      unitRef="U_USD">6667000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_a48d0f0f-c661-4e32-bc9c-09d13e79fe35"
      unitRef="U_USD">6158000</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_84cf13ca-63a3-4405-b4e1-32f6154b42bc"
      unitRef="U_USD">5324000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_082478a4-e049-4248-9a19-fd8175bcf450"
      unitRef="U_USD">4974000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_131b7469-bff9-4181-9862-b8586afe2521"
      unitRef="U_USD">8084000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_a298541f-7391-4d79-9c8d-627876f8fe8c"
      unitRef="U_USD">7453000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_7f86a1b9-8e70-4320-96ef-1a1d4fb1d576"
      unitRef="U_USD">394000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_efcbe9cb-be50-40b1-993c-f1f45c197fc0"
      unitRef="U_USD">984000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_105254b3-57cd-42a1-9e74-910b6a265955"
      unitRef="U_USD">1062000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_ab5069fe-86c7-4a46-a6df-eac47c9c90cd"
      unitRef="U_USD">993000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ProfitLoss
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_61d95540-78ff-487a-91e2-e8819557fab0"
      unitRef="U_USD">4930000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_38a52a70-d596-43c7-871d-09bdd1e7f31e"
      unitRef="U_USD">3990000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_4b5da88f-1151-4d99-b939-446c29f75d94"
      unitRef="U_USD">7022000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_4d930c32-80a5-413b-9706-a0c206df1fd1"
      unitRef="U_USD">6460000</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_5a9e4f16-917c-4e5a-ae05-2cd55bc6c76f"
      unitRef="U_USD">445000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_a11074a4-1c82-426a-8db0-b94300ec4110"
      unitRef="U_USD">266000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_839327d7-d5fa-47c7-b8b1-cbe4798b5299"
      unitRef="U_USD">1029000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_1756852c-3f5a-4215-a724-eb8d57d3e21a"
      unitRef="U_USD">759000</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_004487fe-e301-4411-9626-4903c7b37ddc"
      unitRef="U_USD">4485000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_9cf7bcee-08c1-4b0b-9030-593a737cdb2b"
      unitRef="U_USD">3724000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_1c21224e-db95-4ca5-aa50-f627ab6c1789"
      unitRef="U_USD">5993000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_1eb24a7d-5f1c-4142-9bc6-c1901b624c0a"
      unitRef="U_USD">5701000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="2"
      id="F_42297140-83ad-4010-bd6a-8ef74bcf802c"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.13</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="2"
      id="F_b3ebe1d2-fcb5-42c3-aeb7-e1a6d600b389"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.11</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="2"
      id="F_5d3b192b-3028-4839-a1d7-406d7121652a"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.17</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="2"
      id="F_93981d59-2087-4814-8449-5c4d0dcca177"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.17</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="2"
      id="F_51624512-b6d7-47ca-8ed7-bf593ca98d91"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.12</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="2"
      id="F_8ea19ac2-55c2-4e73-a9aa-e53f076394e9"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.11</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="2"
      id="F_4a770e91-2113-462f-823c-22f05237be23"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.17</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="2"
      id="F_2533d8ee-dad9-4e0e-9084-d841d187032c"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.16</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="INF"
      id="F_20454f29-cb93-4cd7-9f48-6d8e48f2e8ba"
      unitRef="U_shares">34918412</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="INF"
      id="F_27cbfa3f-738f-4af2-8168-3b13b588c489"
      unitRef="U_shares">34619216</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="INF"
      id="F_9e24bbb7-a127-4782-b289-dd296417289a"
      unitRef="U_shares">34881625</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="INF"
      id="F_88d60a79-3653-4cb2-a8f3-21565de80cf4"
      unitRef="U_shares">34531050</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="INF"
      id="F_76400ca1-88e7-4179-8ed9-9611e3b14209"
      unitRef="U_shares">36302664</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="INF"
      id="F_aac8cb11-1125-46a0-97d1-80d635c29439"
      unitRef="U_shares">35143782</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="INF"
      id="F_c3f2cb9b-8b1c-4812-a7df-9fe21f8c870d"
      unitRef="U_shares">36239331</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="INF"
      id="F_f1d39e88-5db1-4b56-a1a5-9df5643b4e05"
      unitRef="U_shares">35171727</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:ProfitLoss
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_e84b7107-8c4e-43fc-b398-99709b25d9f6"
      unitRef="U_USD">4930000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_d188395c-2fcb-4259-bf77-feae1eec7c89"
      unitRef="U_USD">3990000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_2cf09554-a9c6-42f7-a057-d5e5a1fdbb08"
      unitRef="U_USD">7022000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_2cfd79ad-1697-46ca-ab6c-10167db16766"
      unitRef="U_USD">6460000</us-gaap:ProfitLoss>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_542e1080-0184-4fc4-9d2e-b38435603055"
      unitRef="U_USD">-856000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_0c0114eb-a192-478e-a8ec-6dc3ad90c1cf"
      unitRef="U_USD">139000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_56383d3a-81d8-4fec-b287-7beb6689406d"
      unitRef="U_USD">-202000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_c10b2f05-7267-4825-97c9-418657b4906d"
      unitRef="U_USD">905000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_b047e4ca-f4f9-463d-aac7-06ce5e53c091"
      unitRef="U_USD">4074000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_0daa62ea-c043-446d-b979-16633c3c69c1"
      unitRef="U_USD">4129000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_59517248-18d4-44a1-8770-dd0432c2aa66"
      unitRef="U_USD">6820000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_3737c870-29c6-4e1b-afdb-2b0cb50681e3"
      unitRef="U_USD">7365000</us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="C_f83c2bac-f672-4efb-b825-bd21a4a20fb1"
      decimals="INF"
      id="F_23997145-db03-4090-8899-1f7ad37aab24"
      unitRef="U_shares">34835</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_f83c2bac-f672-4efb-b825-bd21a4a20fb1"
      decimals="-3"
      id="F_16f2f2f4-dc0f-4cd3-bbbb-e4d1f5decf01"
      unitRef="U_USD">348000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_02e5d8b9-5f2b-4ee2-8c85-ef3433d6068b"
      decimals="-3"
      id="F_bb2d9c10-402a-4b23-be89-9d25dd9754a6"
      unitRef="U_USD">254956000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_e685381d-ceef-4dcf-a7ea-fb320641518e"
      decimals="-3"
      id="F_55e0c7bd-e5df-4fd1-8fe7-19a7c84b6faa"
      unitRef="U_USD">-6387000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_d0c769fa-b926-46db-acf8-57a0ecc28364"
      decimals="-3"
      id="F_3aea2e64-ec60-4465-bb01-9a8016268f51"
      unitRef="U_USD">-16274000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_7e9ff9e2-ee53-427d-add7-c58910902d9d"
      decimals="-3"
      id="F_d44062c1-0ace-43f1-bf65-ff816bace79a"
      unitRef="U_USD">4848000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_da90725c-50b3-4dfb-9323-512a3028226f"
      unitRef="U_USD">237491000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="C_71573875-4b1c-4a6c-80f3-bb7e887c5bbc"
      decimals="-3"
      id="F_6563b9cb-87d8-4522-a347-f0fb16e651da"
      unitRef="U_USD">1508000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_67952f85-6a00-47cb-8268-1139b3f8fe75"
      decimals="-3"
      id="F_b102da74-3d50-414f-81ac-6bfa37487b61"
      unitRef="U_USD">585000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb"
      decimals="-3"
      id="F_849c0d69-0993-4048-9324-cdb38631e9e4"
      unitRef="U_USD">2093000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2"
      decimals="INF"
      id="F_b4dfcafc-b1be-4233-af0b-96e11a3dec0a"
      unitRef="U_shares">10</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_492f1182-c2fb-4142-a569-68cb6768a4e5"
      decimals="-3"
      id="F_ab5e997e-f344-4bf1-8556-1eef3b43b1b8"
      unitRef="U_USD">113000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb"
      decimals="-3"
      id="F_271e451a-9fcd-4104-bec5-dfbe75d7b702"
      unitRef="U_USD">113000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices
      contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2"
      decimals="INF"
      id="F_52f8baa1-e8c4-4cd6-bbe8-3cf4ff8f1ec3"
      unitRef="U_shares">195</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2"
      decimals="-3"
      id="F_e2991d9c-43dd-4877-a5b5-d3405d0a6ac3"
      unitRef="U_USD">-2000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_492f1182-c2fb-4142-a569-68cb6768a4e5"
      decimals="-3"
      id="F_47b58f32-a1aa-4824-ba5d-946f8d3414e9"
      unitRef="U_USD">2204000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb"
      decimals="-3"
      id="F_3e2a8028-e771-4eaf-affc-64955360bbad"
      unitRef="U_USD">2202000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2"
      decimals="INF"
      id="F_333831e8-3aa4-4102-8a77-f3d123a349ef"
      unitRef="U_shares">12</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_492f1182-c2fb-4142-a569-68cb6768a4e5"
      decimals="-3"
      id="F_51f4dd73-2252-48df-91b2-f8a4e3320795"
      unitRef="U_USD">1808000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb"
      decimals="-3"
      id="F_51978fbe-242e-44fe-bf48-0d78c65d465f"
      unitRef="U_USD">1808000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2"
      decimals="0"
      id="F_372d12f7-1718-4b01-a160-843e717bcf14"
      unitRef="U_shares">-144</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_4dcc122f-1eff-49a3-9a2a-14b58c2889f2"
      decimals="-3"
      id="F_aed06ce8-9160-4d4b-957b-65c893dba40a"
      unitRef="U_USD">1000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_492f1182-c2fb-4142-a569-68cb6768a4e5"
      decimals="-3"
      id="F_e7edd675-c423-4919-878f-48d861cd3aba"
      unitRef="U_USD">3000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb"
      decimals="-3"
      id="F_a709b9dc-1fc5-440b-b8dd-8a0239feee96"
      unitRef="U_USD">3001000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_bc6723cb-1e5e-400d-a838-c78845df4645"
      decimals="-3"
      id="F_4308a5bc-54e8-4ffa-b69b-9f6aca216092"
      unitRef="U_USD">654000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb"
      decimals="-3"
      id="F_dc195b17-9b7c-4936-8e6b-4074089a82b2"
      unitRef="U_USD">654000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="C_67952f85-6a00-47cb-8268-1139b3f8fe75"
      decimals="-3"
      id="F_5c417564-768f-42b7-8c10-8d9b98c55913"
      unitRef="U_USD">804000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="C_0a915ad7-b4a4-4752-bf54-23b4517c3abb"
      decimals="-3"
      id="F_019aa02b-0eba-43e5-af9f-80e4d323bce6"
      unitRef="U_USD">804000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:SharesOutstanding
      contextRef="C_9a84b5b1-c68e-4e41-be48-283bf0ef0e87"
      decimals="INF"
      id="F_f56f28d7-de25-44d1-a3b0-11379c08f648"
      unitRef="U_shares">34908</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_9a84b5b1-c68e-4e41-be48-283bf0ef0e87"
      decimals="-3"
      id="F_47b68046-67f3-40c1-a494-af4ef175b295"
      unitRef="U_USD">349000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_fcc152af-e5ca-45cd-b5d5-6d5289e49299"
      decimals="-3"
      id="F_bcbf08e5-d58c-46b0-ba16-3c920e853bcc"
      unitRef="U_USD">251673000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_d4b4634b-c3b6-4896-8387-339a90a48e65"
      decimals="-3"
      id="F_955f5ae5-2efe-4c76-abed-7b950e80d1a8"
      unitRef="U_USD">-4879000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_ca1a86ec-f09e-4c1e-b971-9c627d11bb26"
      decimals="-3"
      id="F_96a7b35b-4c0b-4b5c-bf44-7e9aafcf8d45"
      unitRef="U_USD">-15620000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_3e009773-c8ad-4721-9878-7588c65dab0c"
      decimals="-3"
      id="F_59cf46a2-7d1f-458d-8172-0c63b0c35967"
      unitRef="U_USD">4629000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_7b0ccbd8-cde1-4fa0-92b8-fbefef7f7aea"
      decimals="-3"
      id="F_59110cf9-5219-47b1-92c3-3695facee2b2"
      unitRef="U_USD">236152000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="C_687e9c24-80ff-4b2c-bd54-7b7583b0e10c"
      decimals="-3"
      id="F_99593fbe-3403-4659-ad97-62c0a548b5e3"
      unitRef="U_USD">4485000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_fdab6820-3f8f-48e9-a985-cb2338ff7e89"
      decimals="-3"
      id="F_2d5294ef-bcf3-4e18-a487-fc1220e5d08a"
      unitRef="U_USD">445000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_07462974-6d34-4689-a785-f0fc295268f5"
      unitRef="U_USD">4930000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4"
      decimals="0"
      id="F_57f5b0fc-d31c-49a4-83a6-7386848bb88c"
      unitRef="U_shares">10</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27"
      decimals="-3"
      id="F_2714b059-279b-4eb2-be3e-caf305ba9ceb"
      unitRef="U_USD">161000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_8da93b2d-fc00-4d95-a603-3cdc1939b57c"
      unitRef="U_USD">161000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices
      contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4"
      decimals="0"
      id="F_6035eec8-3f65-4fa5-82ff-a9f836568ea6"
      unitRef="U_shares">92</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4"
      decimals="-3"
      id="F_cef4c80a-6c43-4621-ae1d-2ffa6e021ded"
      unitRef="U_USD">-1000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27"
      decimals="-3"
      id="F_84458733-5a32-4909-8b9c-0a1e62c9121c"
      unitRef="U_USD">466000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_c2f2e02d-dc88-4836-8a1b-3ac62e7ac54b"
      unitRef="U_USD">465000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27"
      decimals="-3"
      id="F_d3c34fb8-ca29-4017-8d81-b52e1fa0b552"
      unitRef="U_USD">2191000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_b500ae42-9530-4093-a5c3-ad1c20e4789d"
      unitRef="U_USD">2191000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4"
      decimals="0"
      id="F_9391e651-31ae-4d06-90d1-d4521164e5ea"
      unitRef="U_shares">-86</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_d476354c-b060-4bb4-b416-b3a18342bdc4"
      decimals="-3"
      id="F_4ebb4be2-faf5-47fc-81e8-a36911514232"
      unitRef="U_USD">1000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_fd7f2d7f-5f0f-40e7-9ddb-388a4bd9aa27"
      decimals="-3"
      id="F_0089439a-3e97-465c-94d9-017fe89b6ca3"
      unitRef="U_USD">1999000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_cc3c8b4b-f1ce-4ad9-b66c-c119ac14db87"
      unitRef="U_USD">2000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_e98084c8-b39c-41f2-b9e6-98c78fd6227f"
      decimals="-3"
      id="F_6bfd7cf2-f2d2-4088-a691-df3a6a12113f"
      unitRef="U_USD">-856000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_788a5366-10c7-4f13-9c06-940bbde327a7"
      unitRef="U_USD">-856000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="C_fdab6820-3f8f-48e9-a985-cb2338ff7e89"
      decimals="-3"
      id="F_41d09f24-0fc9-4b91-891c-1268c354387f"
      unitRef="U_USD">301000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_b3928249-eecb-40b2-a7c2-1fbdbae89147"
      unitRef="U_USD">301000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:SharesOutstanding
      contextRef="C_8152dc34-4c69-4866-ad0b-23f71ea741a3"
      decimals="INF"
      id="F_44824851-69be-4598-bdbd-34d078366f23"
      unitRef="U_shares">34924</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_8152dc34-4c69-4866-ad0b-23f71ea741a3"
      decimals="-3"
      id="F_6a4daf45-08cd-4a06-a487-a8489ed941ae"
      unitRef="U_USD">349000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_2df8b23c-7594-48e2-872b-922e59cb77df"
      decimals="-3"
      id="F_dd95a905-f1b6-44ed-9ff9-aa9d0d66d750"
      unitRef="U_USD">251560000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_7a1e91ca-0af9-4201-a438-f7a7a000ccd7"
      decimals="-3"
      id="F_5d5eb5ca-64d7-4e02-a6e2-c162d12a485b"
      unitRef="U_USD">-394000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_a688024d-ea2e-4297-b1ee-c2f0c7a49b50"
      decimals="-3"
      id="F_782451e8-c17d-4ea5-8830-177337c7c4e5"
      unitRef="U_USD">-16476000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_99396727-8ad2-491a-96cd-c52300727ec6"
      decimals="-3"
      id="F_021d7b10-5c6b-4513-be2a-04cbf4f07c68"
      unitRef="U_USD">4773000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_c3fbb37e-f776-4b07-a729-1a1138be0dc9"
      unitRef="U_USD">239812000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:SharesOutstanding
      contextRef="C_4db9219a-d453-46e6-88fb-2d3af9aa5d1a"
      decimals="INF"
      id="F_20662fde-b1e2-45a4-b679-28b531781aba"
      unitRef="U_shares">34382</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_4db9219a-d453-46e6-88fb-2d3af9aa5d1a"
      decimals="-3"
      id="F_9a258389-6caf-45a5-b560-6636f421fe5a"
      unitRef="U_USD">344000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_abfbf8d7-c1a5-478e-a989-5c15e4b3a4ab"
      decimals="-3"
      id="F_491cceed-2c5e-47e6-914c-c3b66d76d004"
      unitRef="U_USD">250174000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_86e5f137-171d-4e9e-8348-f8a74cde016d"
      decimals="-3"
      id="F_ea62edf4-b9ea-460a-afbc-4a956c6f9e5a"
      unitRef="U_USD">-19298000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_b12d247c-0afd-4ab5-88b6-e0a38ee75cca"
      decimals="-3"
      id="F_40a2b2c1-e752-401c-a9ae-c51be971847e"
      unitRef="U_USD">-17996000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_bf1f7afe-ef76-4839-b481-e2da2412a988"
      decimals="-3"
      id="F_619256e1-5b22-473b-9155-3bb2ef428582"
      unitRef="U_USD">4924000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f"
      decimals="-3"
      id="F_f2e1fa67-02f4-4dda-9989-9807811a7efb"
      unitRef="U_USD">218148000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="C_6c1b1dc3-e0b0-4139-9496-f0133f3508cd"
      decimals="-3"
      id="F_37d75163-23b1-413f-a547-ea3991a05572"
      unitRef="U_USD">1978000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_c00125b7-d499-4c83-8986-6a7b2d7fb0ac"
      decimals="-3"
      id="F_c2cea9f4-02ce-495f-b3af-7bd9afeb66a0"
      unitRef="U_USD">491000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1"
      decimals="-3"
      id="F_74aabcfd-028a-455b-83d3-974d0ff76118"
      unitRef="U_USD">2469000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_025cc205-8d40-4baf-944b-7d110f8d7a9c"
      decimals="0"
      id="F_b1749300-1d46-40a9-948a-51d6ae93f0b4"
      unitRef="U_shares">52</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_025cc205-8d40-4baf-944b-7d110f8d7a9c"
      decimals="-3"
      id="F_331b43cc-a6e0-4f2a-bd91-867fccba56cd"
      unitRef="U_USD">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_63361188-0704-4e53-a4f8-ee4bc36d4c95"
      decimals="-3"
      id="F_556ce4d8-39d2-4a0d-b4a5-a38f4286f5d9"
      unitRef="U_USD">611000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1"
      decimals="-3"
      id="F_6b8631f4-d658-43cf-91af-b06a70f77507"
      unitRef="U_USD">612000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices
      contextRef="C_025cc205-8d40-4baf-944b-7d110f8d7a9c"
      decimals="0"
      id="F_5c222bd8-1083-4867-9314-ab6a3e379279"
      unitRef="U_shares">123</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_025cc205-8d40-4baf-944b-7d110f8d7a9c"
      decimals="-3"
      id="F_add3d575-bd8b-464a-a041-9901a3a371bd"
      unitRef="U_USD">-1000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_63361188-0704-4e53-a4f8-ee4bc36d4c95"
      decimals="-3"
      id="F_8c87501f-2ef9-43c0-b1a7-35554aaaf27f"
      unitRef="U_USD">622000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1"
      decimals="-3"
      id="F_d392e553-f732-40d0-a119-61cd41b6732d"
      unitRef="U_USD">621000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_63361188-0704-4e53-a4f8-ee4bc36d4c95"
      decimals="-3"
      id="F_ab0b8325-437e-4367-bfea-f9db06765738"
      unitRef="U_USD">808000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1"
      decimals="-3"
      id="F_8a1f46cb-326b-4546-bcd0-a45c0eb2bc5b"
      unitRef="U_USD">808000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_075aff28-c277-466b-aa65-832c445c2571"
      decimals="-3"
      id="F_e14b21c5-19d1-4e56-a08a-aaa0d3edbd2b"
      unitRef="U_USD">766000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_fbd26f08-0b3a-4b1b-9cea-768f8f0e24c1"
      decimals="-3"
      id="F_af5843ad-6970-4c29-978c-ab29a8841cdd"
      unitRef="U_USD">766000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="C_43496f44-5f4e-4927-92e2-12adb3779d75"
      decimals="INF"
      id="F_c9552323-0f9c-455a-9ca5-dd03c4d4a225"
      unitRef="U_shares">34557</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_43496f44-5f4e-4927-92e2-12adb3779d75"
      decimals="-3"
      id="F_67a8b3ec-50e2-4ad8-bd1d-3391a3eee3ba"
      unitRef="U_USD">346000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_a0d70f96-cc7d-4573-a235-17a155aa32cf"
      decimals="-3"
      id="F_251c3605-1592-44c8-8c8b-67d81fab9378"
      unitRef="U_USD">250971000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_de8921fa-e123-403f-a89e-0f89fe00e956"
      decimals="-3"
      id="F_95ec126e-8140-4b49-b85f-aa440eecb75c"
      unitRef="U_USD">-17320000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_dd6a1aef-4b8c-4998-8b9c-7c19aecf7d4c"
      decimals="-3"
      id="F_9f579f58-25c9-4c99-b518-531f2d30d032"
      unitRef="U_USD">-17230000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_0f9752f6-f439-49bd-8e82-a29a0fa2ef85"
      decimals="-3"
      id="F_125d3051-59cc-4b2b-9b69-14df83fefde8"
      unitRef="U_USD">5415000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_dabb3e39-4cf8-4cf3-9892-ef27de1f36e6"
      decimals="-3"
      id="F_70db4806-35ae-415b-b064-75f2f03e9028"
      unitRef="U_USD">222182000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="C_a4849349-5942-4bf8-99e7-2369f3306cf5"
      decimals="-3"
      id="F_7eae5912-6fd5-408f-b242-ef262062e6e4"
      unitRef="U_USD">3724000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_41a854ea-1135-458f-87da-1f44f2144c51"
      decimals="-3"
      id="F_3da6dd7a-8ab8-4065-999d-f77d37f66f96"
      unitRef="U_USD">266000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_803641ed-aab1-4adf-a830-657cde563c6b"
      unitRef="U_USD">3990000</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_4035f7da-d67e-4954-be7a-ebb558685f77"
      decimals="INF"
      id="F_0aa203ef-c28c-4fb5-9c78-a701480004da"
      unitRef="U_shares">25</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_826735e3-d4df-4c93-b413-1f84f74a82a1"
      decimals="-3"
      id="F_7de29102-e897-4dc2-b11d-942323128288"
      unitRef="U_USD">317000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_029a99a5-3700-4ab3-be89-63e206b800bb"
      unitRef="U_USD">317000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices
      contextRef="C_4035f7da-d67e-4954-be7a-ebb558685f77"
      decimals="INF"
      id="F_a5a740a3-cf81-4b5e-928b-549f28d4d9c6"
      unitRef="U_shares">132</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_4035f7da-d67e-4954-be7a-ebb558685f77"
      decimals="-3"
      id="F_565453b8-4729-4e8e-8983-8abb46ad6236"
      unitRef="U_USD">1000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_826735e3-d4df-4c93-b413-1f84f74a82a1"
      decimals="-3"
      id="F_09a19a86-4e8b-418c-a794-0c70ac587d2e"
      unitRef="U_USD">271000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_a87c1056-a551-4574-a573-c1e72231f495"
      unitRef="U_USD">270000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="C_4035f7da-d67e-4954-be7a-ebb558685f77"
      decimals="0"
      id="F_efe5c843-2c81-4044-b355-ab820f2c3bd8"
      unitRef="U_shares">24</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_826735e3-d4df-4c93-b413-1f84f74a82a1"
      decimals="-3"
      id="F_dff17feb-5313-4880-9946-08172fd72083"
      unitRef="U_USD">1389000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_3b7fa8de-ac48-4ca7-805d-4bc45786b6b4"
      unitRef="U_USD">1389000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_3373058d-aad6-4f03-8c90-2c4065c64dd5"
      decimals="-3"
      id="F_de61d1ac-8883-4486-9a64-2c1d8f2a1876"
      unitRef="U_USD">139000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_c9ca8971-203e-43f4-a36a-6eb65229c3b9"
      unitRef="U_USD">139000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="C_41a854ea-1135-458f-87da-1f44f2144c51"
      decimals="-3"
      id="F_177df5ed-cb46-4550-a31c-5bb5d6939e14"
      unitRef="U_USD">599000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_5b8bd1a7-1f50-42ed-9847-6227f56a5c57"
      unitRef="U_USD">599000</us-gaap:MinorityInterestDecreaseFromDistributionsToNoncontrollingInterestHolders>
    <us-gaap:SharesOutstanding
      contextRef="C_11370468-b175-4073-8c99-42a16caa2ba9"
      decimals="INF"
      id="F_e4a818c5-c308-4197-9cc1-cad30cd637df"
      unitRef="U_shares">34738</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_11370468-b175-4073-8c99-42a16caa2ba9"
      decimals="-3"
      id="F_8ea2b03a-0819-470e-a444-c46026c33e31"
      unitRef="U_USD">347000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_b93bb5d1-3363-47a1-b510-579f7a79a069"
      decimals="-3"
      id="F_d52dd053-c8c5-420d-a53f-faa0f69e5af6"
      unitRef="U_USD">252406000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_a268f94b-df62-41e1-82fb-011408c77eb7"
      decimals="-3"
      id="F_8e0ac532-8ab4-4368-94f0-fcca40f7e38c"
      unitRef="U_USD">-13596000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_452b3b23-e015-4639-8e24-8004aa284162"
      decimals="-3"
      id="F_2b655f91-c28e-4ad8-8ed1-e06c9583cf0d"
      unitRef="U_USD">-17091000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_8d8d383b-3f59-464a-82cf-711cf15f8c2d"
      decimals="-3"
      id="F_907273de-b828-4dfc-994f-aaa434705f30"
      unitRef="U_USD">5082000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="C_4ae7e10f-e6a0-4338-afa2-eb839c19e635"
      decimals="-3"
      id="F_7764bc87-7f3d-4000-b0da-b577a26f9b14"
      unitRef="U_USD">227148000</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_676afaa2-f834-404d-b3ce-7ac58a936c1f"
      unitRef="U_USD">7022000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_0f572ce6-6e4f-47f2-8ded-bfa2fa66c9bb"
      unitRef="U_USD">6460000</us-gaap:ProfitLoss>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_55bafd9d-a1c3-4747-ac57-6b8ec0d94c94"
      unitRef="U_USD">6973000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_825bf959-9874-4e41-9c89-91638a4c3cfa"
      unitRef="U_USD">5650000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:ForeignCurrencyTransactionGainLossUnrealized
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_d0054c30-3939-48af-9352-eff42a7bc367"
      unitRef="U_USD">-691000</us-gaap:ForeignCurrencyTransactionGainLossUnrealized>
    <us-gaap:ForeignCurrencyTransactionGainLossUnrealized
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_9feb9d42-b407-4ba0-a5bc-79432dfde3bd"
      unitRef="U_USD">863000</us-gaap:ForeignCurrencyTransactionGainLossUnrealized>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_60ec69e0-f33b-4b03-80ab-77c53b918dcf"
      unitRef="U_USD">0</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_4d4d18ad-77b3-4a0f-84ff-29a94c438908"
      unitRef="U_USD">296000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_ce210e6e-7e80-43b1-a4de-c13856353e18"
      unitRef="U_USD">-126000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_b069d0f9-1106-46f3-8279-ff45d16d8029"
      unitRef="U_USD">-78000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:AmortizationOfDebtDiscountPremium
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_1b32237a-c9a8-49b5-afc7-a1044323ef45"
      unitRef="U_USD">240000</us-gaap:AmortizationOfDebtDiscountPremium>
    <us-gaap:AmortizationOfDebtDiscountPremium
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_40c4a907-67b6-4c73-a29c-c0791bfd35be"
      unitRef="U_USD">182000</us-gaap:AmortizationOfDebtDiscountPremium>
    <us-gaap:ShareBasedCompensation
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_a7a97266-97cd-4744-b153-6ff3c64f2ad9"
      unitRef="U_USD">3847000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_6eb97715-ec71-4ac9-9a92-20171b3733c3"
      unitRef="U_USD">1967000</us-gaap:ShareBasedCompensation>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_861dfc60-4667-42b5-99da-b7b1f43d376a"
      unitRef="U_USD">267000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_bdd6d2f6-a531-4b8e-ae72-641cb406ae07"
      unitRef="U_USD">-23000</us-gaap:ProvisionForDoubtfulAccounts>
    <ceco:InventoryReserveExpenseBenefit
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_a582dad5-9217-4331-8d87-1c36078fdc2b"
      unitRef="U_USD">669000</ceco:InventoryReserveExpenseBenefit>
    <ceco:InventoryReserveExpenseBenefit
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_7f38dd63-7e1e-4615-a192-d420ec9f14e9"
      unitRef="U_USD">551000</ceco:InventoryReserveExpenseBenefit>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_44dfc2e4-d088-443d-8236-3ac97eeee259"
      unitRef="U_USD">-22000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_1b897401-477e-41cf-b9ec-9c69abe42f69"
      unitRef="U_USD">-0</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_19f7ba3d-1ec5-44ea-8cea-d5c3cccbd7ff"
      unitRef="U_USD">17295000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_f5b3d7ff-073c-4381-8e00-fa54c94e2969"
      unitRef="U_USD">39181000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <ceco:ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_56e44a5f-a38c-48ca-8d86-7589ea0b1564"
      unitRef="U_USD">-10610000</ceco:ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract>
    <ceco:ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_3227e25c-4cf4-42de-befd-c0d9fdc4aeef"
      unitRef="U_USD">-9596000</ceco:ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_6d737196-4263-43df-92e6-3a5f71321c66"
      unitRef="U_USD">5151000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_c4576bd1-d8e5-4c51-9002-2808a3e16ff8"
      unitRef="U_USD">4081000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_be4fe753-c9c1-45b5-806d-26f69a815276"
      unitRef="U_USD">11164000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_b6697563-17eb-4c03-9de3-8290b7b08e0b"
      unitRef="U_USD">8319000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <ceco:IncreaseDecreaseInDeferredChargesAndOtherAssets
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_fb277e8a-91e3-4f76-b88c-b7e4ee57d9c1"
      unitRef="U_USD">412000</ceco:IncreaseDecreaseInDeferredChargesAndOtherAssets>
    <ceco:IncreaseDecreaseInDeferredChargesAndOtherAssets
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_817ccb20-efe5-497c-b699-4f187803efca"
      unitRef="U_USD">306000</ceco:IncreaseDecreaseInDeferredChargesAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_5eae76b5-3108-4987-9560-32c8e810e677"
      unitRef="U_USD">13719000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_323935e3-c79c-4826-b45b-45b44770c2e3"
      unitRef="U_USD">6594000</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_767a9f47-1adf-4743-ba4e-5ba97fdb9dc9"
      unitRef="U_USD">1566000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_63f0f36a-64b7-41ba-925f-b3ad0770bb07"
      unitRef="U_USD">-2692000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <ceco:ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_aed47634-3410-4352-808d-60faa6f7c10a"
      unitRef="U_USD">3060000</ceco:ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings>
    <ceco:ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_e8308a46-ae95-41bb-afce-05c06e138de7"
      unitRef="U_USD">26005000</ceco:ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_9fc032ed-ada5-4db2-a396-1d32d6bd650e"
      unitRef="U_USD">68000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_162a9f78-7df6-496c-ab3c-232def5c183a"
      unitRef="U_USD">601000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_dcb05782-3b39-47ca-8a3a-bf950a807123"
      unitRef="U_USD">-6967000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_2762c67a-b3a5-4963-a163-fae95029bf4a"
      unitRef="U_USD">-3126000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_cc7f9ef8-730e-49ff-ac99-924313179127"
      unitRef="U_USD">7891000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_faa443cb-8efa-474c-a410-4b87d7d1d09f"
      unitRef="U_USD">-611000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_3940e0bb-9a22-4dfe-aa06-27aa4de785d0"
      unitRef="U_USD">7233000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_f431f06a-f3c6-4251-9238-f80e429dba29"
      unitRef="U_USD">3919000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsForProceedsFromInvestments
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_7543fd88-80db-4c40-b320-f26e255ddc90"
      unitRef="U_USD">-422000</us-gaap:PaymentsForProceedsFromInvestments>
    <us-gaap:PaymentsForProceedsFromInvestments
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_ce28996f-5e36-442e-b3d8-ebd74c047ed7"
      unitRef="U_USD">24142000</us-gaap:PaymentsForProceedsFromInvestments>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_7b76232b-ab41-44f2-8a30-0af611dee7e8"
      unitRef="U_USD">-6811000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_e81d431d-5332-4386-bcda-7db40c73cf99"
      unitRef="U_USD">-28061000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <ceco:BorrowingsOnRevolvingLineOfCredit
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_0e5db477-d95e-49ec-8e30-de11cc1c1cd2"
      unitRef="U_USD">21700000</ceco:BorrowingsOnRevolvingLineOfCredit>
    <ceco:BorrowingsOnRevolvingLineOfCredit
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_42e7883d-393f-4b5d-9706-ff1df8c1b1e2"
      unitRef="U_USD">65300000</ceco:BorrowingsOnRevolvingLineOfCredit>
    <us-gaap:ProceedsFromRepaymentsOfLinesOfCredit
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_087707a1-009a-4711-8df8-9b4d27be01d0"
      unitRef="U_USD">-23200000</us-gaap:ProceedsFromRepaymentsOfLinesOfCredit>
    <us-gaap:ProceedsFromRepaymentsOfLinesOfCredit
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_c7624990-c00a-45e1-94fa-d061be7b4271"
      unitRef="U_USD">-33400000</us-gaap:ProceedsFromRepaymentsOfLinesOfCredit>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_121d82da-4b59-4f6b-91b0-a833015ecff6"
      unitRef="U_USD">5198000</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_3a4c5086-e66e-45ff-b7c4-ad3146009155"
      unitRef="U_USD">1652000</us-gaap:RepaymentsOfLongTermDebt>
    <ceco:PaymentsOnFinanceLeasesAndFinancingLiability
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_9341179a-4393-44eb-93c8-14dc1c23ee5c"
      unitRef="U_USD">458000</ceco:PaymentsOnFinanceLeasesAndFinancingLiability>
    <ceco:PaymentsOnFinanceLeasesAndFinancingLiability
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_adc593e0-5975-44db-a1c6-1b45057d5d40"
      unitRef="U_USD">450000</ceco:PaymentsOnFinanceLeasesAndFinancingLiability>
    <ceco:DeferredConsiderationPaidForAcquisitions
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_6883df43-852a-4f07-a7d1-48614e565cd3"
      unitRef="U_USD">2050000</ceco:DeferredConsiderationPaidForAcquisitions>
    <ceco:DeferredConsiderationPaidForAcquisitions
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_1c94ea81-e0de-4a26-8d21-4b8a0ad51be1"
      unitRef="U_USD">857000</ceco:DeferredConsiderationPaidForAcquisitions>
    <ceco:AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_cbdd63c2-19d7-4d13-a1f8-daca141110b5"
      unitRef="U_USD">1672000</ceco:AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities>
    <ceco:AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_b47e34fc-49d4-4369-b71d-9871583bbe20"
      unitRef="U_USD">0</ceco:AdditionalPaymentsOfContingentConsiderationRelatedToAcquisitionsFinancingActivities>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_28ead0d8-1cbf-4154-9c77-eedcc385a494"
      unitRef="U_USD">418000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_1ef66471-ec73-474f-a8a9-e85a8454c47a"
      unitRef="U_USD">1156000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:PaymentsToMinorityShareholders
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_ee545e8f-98ea-4938-addd-5bdb29dd43a0"
      unitRef="U_USD">1105000</us-gaap:PaymentsToMinorityShareholders>
    <us-gaap:PaymentsToMinorityShareholders
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_d4e321cd-910c-48ff-ba0b-55d4109efe46"
      unitRef="U_USD">599000</us-gaap:PaymentsToMinorityShareholders>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_48a880a6-fffa-4cc5-8ec1-0081cf8c7ca9"
      unitRef="U_USD">5000000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_4593d50b-dca0-4fe3-b0bf-065b866c6067"
      unitRef="U_USD">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_2ff75b0e-c0c6-42a3-a962-516a88b83f58"
      unitRef="U_USD">-16565000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_c9960aab-8aad-40ee-b1d1-27d2c975707b"
      unitRef="U_USD">29498000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_0316fad3-b9e2-4b7d-ae25-2090de95e2fe"
      unitRef="U_USD">-3049000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_50ca7e84-6d62-4958-bc4e-0308d165031f"
      unitRef="U_USD">1141000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_19daaef5-c704-4f92-a1c4-e5bbe4e232a9"
      unitRef="U_USD">-18534000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_f9759cfa-8e18-4c7f-bca4-5280febf6d07"
      unitRef="U_USD">1967000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_bd3bf244-e666-4738-a93a-ce9b71062866"
      unitRef="U_USD">55448000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f"
      decimals="-3"
      id="F_dce997c5-a683-482f-8a87-f49da55f8a33"
      unitRef="U_USD">46585000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_98952688-5e77-42e2-8721-9694b4d1a83e"
      unitRef="U_USD">36914000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="C_4ae7e10f-e6a0-4338-afa2-eb839c19e635"
      decimals="-3"
      id="F_056d0278-78ca-4a43-a2ae-786d2dfff447"
      unitRef="U_USD">48552000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:InterestPaidNet
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_af103b89-8fcb-4b50-b24f-401c4f60656e"
      unitRef="U_USD">6574000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_bf12ed25-3cbe-4fa9-99cf-42ca7930a1ed"
      unitRef="U_USD">5380000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_52723c49-013e-4436-8e49-179932bbbdc7"
      unitRef="U_USD">3801000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_2193b66a-20b0-47eb-a9f0-bf51d7fabd3e"
      unitRef="U_USD">7605000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_2c666882-d567-493d-85d1-96069e7f217d">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;1.	Basis of Reporting for Consolidated Financial Statements&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The accompanying unaudited condensed consolidated financial statements of CECO Environmental Corp. and its subsidiaries (the &#x201c;Company,&#x201d; &#x201c;CECO,&#x201d; &#x201c;we,&#x201d; &#x201c;us,&#x201d; or &#x201c;our&#x201d;) have been prepared pursuant to the rules and regulations of the Securities and Exchange Commission (the &#x201c;SEC&#x201d;). Certain information and footnote disclosures normally included in financial statements prepared in accordance with accounting principles generally accepted in the United States of America (&#x201c;GAAP&#x201d;) have been condensed or omitted pursuant to those rules and regulations. In the opinion of management, the accompanying unaudited condensed consolidated financial statements of the Company contain all adjustments, consisting only of normal recurring adjustments, necessary to present fairly the financial position as of June 30, 2024 and the results of operations, cash flows and shareholders&#x2019; equity for the three and six months ended June 30, 2024 and 2023. The results of operations for the three and six months ended June 30, 2024 are not necessarily indicative of the results to be expected for the full year. The balance sheet as of December 31, 2023 has been derived from the audited consolidated financial statements included in the Company&#x2019;s Annual Report on Form 10-K for the year ended December 31, 2023 as filed with the SEC on March 5, 2024 (the &#x201c;Form 10-K&#x201d;).&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The preparation of financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;These financial statements and accompanying notes should be read in conjunction with the audited financial statements and the notes thereto included in the Form 10-K.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Unless otherwise indicated, all balances within tables are in thousands, except per share amounts.&lt;/span&gt;&lt;/p&gt;</us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock>
    <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_84d9898a-8220-447b-b297-02603eba1952">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;2.	New Financial Accounting Pronouncements&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accounting Standards Adopted in Fiscal &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;None.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accounting Standards to be Adopted&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;In December 2023, the Financial Accounting Standards Board (the "FASB") issued Accounting Standards Update ("ASU") 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which addresses income tax disclosure requirements, primarily around the disclosure of the rate reconciliation and income taxes paid. The ASU is effective for fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#x2019;s consolidated financial statements.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;In November 2023, the FASB issued ASU 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which addresses segment disclosure requirements, primarily the disclosure of significant segment expenses. The ASU is effective for fiscal years beginning after December 15, 2023, and interim periods beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#x2019;s consolidated financial statements.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_956451e9-da69-47b8-9a9f-a296cfad32dd">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accounting Standards Adopted in Fiscal &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;None.&lt;/span&gt;&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <ceco:NewAccountingStandardsNotYetAdoptedPolicyTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_33e98780-271c-4ff7-b60d-e33fe58bddcd">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accounting Standards to be Adopted&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;In December 2023, the Financial Accounting Standards Board (the "FASB") issued Accounting Standards Update ("ASU") 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, which addresses income tax disclosure requirements, primarily around the disclosure of the rate reconciliation and income taxes paid. The ASU is effective for fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#x2019;s consolidated financial statements.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;In November 2023, the FASB issued ASU 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which addresses segment disclosure requirements, primarily the disclosure of significant segment expenses. The ASU is effective for fiscal years beginning after December 15, 2023, and interim periods beginning after December 15, 2024. The Company is currently evaluating the impact the adoption of the standard will have on the Company&#x2019;s consolidated financial statements.&lt;/span&gt;&lt;/p&gt;</ceco:NewAccountingStandardsNotYetAdoptedPolicyTextBlock>
    <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_55e062cd-d226-42bf-af02-b1862fe8ff07">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;3. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;	Accounts Receivable 	&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accounts receivable as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;133,556&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;119,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Provision for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,582&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,460&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total accounts receivable, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;126,974&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;112,733&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accounts receivable, net as of the beginning of the prior year period, or January 1, 2023, were &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;83.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Balances billed but not paid by customers under retainage provisions in contracts within the Condensed Consolidated Balance Sheets amounted to approximately &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;3.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million as of June 30, 2024 and December 31, 2023, respectively. Retainage receivables on contracts in progress are generally collected within a year or two subsequent to contract completion, and are recorded in either "Accounts receivable, net" or "Deferred charges and other assets" within the Condensed Consolidated Balance Sheets depending on timing of expected collection.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Amounts charged to (recovered from) the provision for credit losses was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$(&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the three months ended June 30, 2024 and 2023, respectively, and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;zero&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; for the six months ended June 30, 2024 and 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, respectively.&lt;/span&gt;&lt;/p&gt;</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_e6affbd7-b563-4e2d-83fd-f181bb6e52b9">&lt;p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accounts receivable as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;133,556&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;119,193&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Provision for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,582&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,460&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total accounts receivable, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;126,974&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;112,733&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_31115e7a-5b81-4643-a2b9-512790ea6218"
      unitRef="U_USD">133556000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_812765ce-d10b-4312-aa4c-5afe20984560"
      unitRef="U_USD">119193000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_755fe5c1-9ebe-4a3c-a714-13bad9b8879d"
      unitRef="U_USD">6582000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_55c6cb05-07e8-418c-af7a-df7cdd655539"
      unitRef="U_USD">6460000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_a32e760d-d19e-4d09-b7ad-c57219372568"
      unitRef="U_USD">126974000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_2f8088b5-7f23-44d8-b964-adce3e21465d"
      unitRef="U_USD">112733000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_2b349de6-f0d4-4ecc-a8d1-0ccf096c6c1a"
      decimals="-5"
      id="F_6e6fa2e8-f656-4301-a976-aa893c892c0a"
      unitRef="U_USD">83100000</us-gaap:AccountsReceivableNetCurrent>
    <ceco:ContractReceivableRetainage1
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_061842e3-c0bc-452b-83e1-158e364b4b24"
      unitRef="U_USD">3900000</ceco:ContractReceivableRetainage1>
    <ceco:ContractReceivableRetainage1
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-5"
      id="F_476d32ca-55c3-4229-8494-054801d7cd7a"
      unitRef="U_USD">3200000</ceco:ContractReceivableRetainage1>
    <us-gaap:ProvisionForOtherCreditLosses
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_47d5e625-c665-455d-b3ab-484559306018"
      unitRef="U_USD">700000</us-gaap:ProvisionForOtherCreditLosses>
    <us-gaap:ProvisionForOtherCreditLosses
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-5"
      id="F_7a71031f-2bfb-424d-98fd-ca9ca50bf942"
      unitRef="U_USD">-100000</us-gaap:ProvisionForOtherCreditLosses>
    <us-gaap:ProvisionForOtherCreditLosses
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_2c75e306-a506-445e-9b34-09983fc8672a"
      unitRef="U_USD">300000</us-gaap:ProvisionForOtherCreditLosses>
    <us-gaap:ProvisionForOtherCreditLosses
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-6"
      id="F_dd215a68-2b3a-4da0-86cd-4b29609ab973"
      unitRef="U_USD">0</us-gaap:ProvisionForOtherCreditLosses>
    <us-gaap:ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_c217f699-39d4-4bd5-aa57-16133017571a">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;4.  &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;	Contract Assets and Liabilities 	&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Contract assets and liabilities as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:59.792%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.68%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.423%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.68%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.423%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Costs and estimated earnings in excess of billings on uncompleted contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;55,378&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;66,574&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Billings in excess of costs and estimated earnings on uncompleted contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;59,851&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;56,899&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;As of the beginning of the prior year period, or January 1, 2023, costs and estimated earnings in excess of billings on uncompleted contracts and billings in excess of costs and estimated earnings on uncompleted contracts were &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;71.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;32.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively. The contract liabilities recorded in &#x201c;Accrued expenses&#x201d; on the Condensed Consolidated Balance Sheets were &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;9.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;7.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;4.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024, December 31, 2023 and January 1, 2023, respectively. Approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;70&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; of the Company's contract liabilities as of December 31, 2023 were recognized as revenue in the six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfRegulatoryAssetsAndLiabilitiesTextBlock>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_678af98e-e20d-484e-a394-d64bf78cc3b3">&lt;p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Contract assets and liabilities as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:59.792%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.68%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.423%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.68%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:16.423%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Costs and estimated earnings in excess of billings on uncompleted contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;55,378&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;66,574&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Billings in excess of costs and estimated earnings on uncompleted contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;59,851&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;56,899&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_cb357131-3686-4aa7-9026-d5ab93d9d78f"
      unitRef="U_USD">55378000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_efe6c97e-dda5-4524-b372-698152866e42"
      unitRef="U_USD">66574000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_12532554-ca5c-4e9d-85f5-84dee29f4c4b"
      unitRef="U_USD">59851000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_abec857a-d081-4ef9-9020-fb9da8fb7cc2"
      unitRef="U_USD">56899000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="C_2b349de6-f0d4-4ecc-a8d1-0ccf096c6c1a"
      decimals="-5"
      id="F_58b48367-3d2c-43fd-a96c-ec7d6c9164ac"
      unitRef="U_USD">71000000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_2b349de6-f0d4-4ecc-a8d1-0ccf096c6c1a"
      decimals="-5"
      id="F_b1e1c33d-4c67-4bab-9f58-a7b441edc59e"
      unitRef="U_USD">32700000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:AccruedLiabilitiesCurrentAndNoncurrent
      contextRef="C_e1612251-f088-46b2-acb5-991ee0c4d66b"
      decimals="-5"
      id="F_b42de744-172f-4c9d-bb37-97761ab41c68"
      unitRef="U_USD">9200000</us-gaap:AccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedLiabilitiesCurrentAndNoncurrent
      contextRef="C_36e74a25-4e6f-4a38-91c6-c90ceb48802e"
      decimals="-5"
      id="F_38a85358-7f84-4773-bf62-2ae8cbb865b4"
      unitRef="U_USD">7900000</us-gaap:AccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedLiabilitiesCurrentAndNoncurrent
      contextRef="C_467bb776-a6b7-46e4-b2e6-701f8443e8a1"
      decimals="-5"
      id="F_bbe4dddd-6850-4cbe-94ac-c13c0c309f61"
      unitRef="U_USD">4500000</us-gaap:AccruedLiabilitiesCurrentAndNoncurrent>
    <ceco:ContractLiabilitiesRecognizedAsRevenue
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="2"
      id="F_a891fe32-0d7e-4270-86a2-6e94e28bd363"
      unitRef="U_pure">0.70</ceco:ContractLiabilitiesRecognizedAsRevenue>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_0c7768c3-f8f0-407a-b7cc-4dffd3fdb709">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;5.	Inventories&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Inventories as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.553%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.683%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.683%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Raw materials&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;27,869&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,819&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Work in process&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11,732&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Finished goods&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,905&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,368&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Obsolescence allowance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,031&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,808&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total inventories&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;38,475&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,089&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Amounts credited to the allowance for obsolete inventory and charged to cost of sales amounted to &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the three months ended June 30, 2024 and 2023, respectively, and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the six months ended June 30, 2024 and 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, respectively.&lt;/span&gt;&lt;/p&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_04ddf537-b205-4463-9b36-b049b9c16aeb">&lt;p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Inventories as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.553%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.683%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.683%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Raw materials&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;27,869&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;25,819&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Work in process&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11,732&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,710&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Finished goods&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,905&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,368&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Obsolescence allowance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,031&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,808&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total inventories&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;38,475&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,089&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterials
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_f08dd5c4-baca-43a5-923f-b3374bd6741c"
      unitRef="U_USD">27869000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_2bcf0b74-566b-4c13-86cb-c2d33ab9a5b8"
      unitRef="U_USD">25819000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryWorkInProcess
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_52a2f66d-522d-49e0-bd20-020e012c726f"
      unitRef="U_USD">11732000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_c3a06692-7e2e-4a6b-80eb-e584ae2cd8db"
      unitRef="U_USD">9710000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryFinishedGoods
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_36a6b24e-c55f-4f19-9e08-4eefae691ad4"
      unitRef="U_USD">2905000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_bcc488d1-ae07-4ddf-9088-015a847df201"
      unitRef="U_USD">2368000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryValuationReserves
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_8f04d9dd-42ec-431c-a92c-203bee17e81f"
      unitRef="U_USD">4031000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_ccbd2f41-c643-43c5-9ffb-80851d23e786"
      unitRef="U_USD">3808000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNet
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_b712d818-f226-482e-a64f-582f62e3e72f"
      unitRef="U_USD">38475000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_1e0b8c51-e184-4ac8-a04d-582bab99f684"
      unitRef="U_USD">34089000</us-gaap:InventoryNet>
    <us-gaap:InventoryWriteDown
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_dd59aac1-ec48-4fba-b6c8-2b5e0a906e86"
      unitRef="U_USD">200000</us-gaap:InventoryWriteDown>
    <us-gaap:InventoryWriteDown
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-5"
      id="F_73a1a786-8606-4d0d-8566-022e1708383f"
      unitRef="U_USD">400000</us-gaap:InventoryWriteDown>
    <us-gaap:InventoryWriteDown
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_4bfcdf4f-7b9d-4371-834c-be36b2f9b6b4"
      unitRef="U_USD">700000</us-gaap:InventoryWriteDown>
    <us-gaap:InventoryWriteDown
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-5"
      id="F_577923ec-cefd-4e44-849e-f73436a9ea38"
      unitRef="U_USD">600000</us-gaap:InventoryWriteDown>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_b0caac0e-c550-4cff-9f6a-4ab239ef79f3">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;6.	Goodwill and Intangible Assets&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Goodwill activity for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2024 and the year ended December 31, 2023 was as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:44.009%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.703%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.382%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.421999999999999%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.421999999999999%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Year ended December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Goodwill / Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Balance at beginning of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,570&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;183,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,508&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;110&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;27,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Foreign currency translation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;292&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;48&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;977&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;62&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Balance at end of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,570&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;During the first quarter of 2024, the Company recorded measurement period adjustments related to the acquisition of Kemco Systems Co., LLC ("Kemco"), as discussed in Note 15, resulting in an increase to goodwill.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Finite life intangible assets as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:44.009%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.002%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.062%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.04%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.421999999999999%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.04%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.421999999999999%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Accum. Amort.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Accum. Amort.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,508&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,517&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,061&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Customer lists&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;103,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;66,721&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;103,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;63,420&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Tradenames&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,094&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,688&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,094&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,001&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Foreign currency adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,397&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;207&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,083&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;56&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total intangible assets &#x2013; finite life&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;132,676&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;86,590&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;132,999&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;82,538&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:11pt;font-family:'Calibri',sans-serif;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Finite life intangible asset activity for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2024 and 2023 was as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible assets &#x2013; finite life, net at beginning of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;50,461&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;35,251&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Amortization expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,315&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,430&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,708&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Foreign currency adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;60&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;370&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible assets &#x2013; finite life, net at end of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;46,086&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;42,899&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Amortization expense of finite life intangible assets was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;2.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;1.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the three months ended &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and 2023, respectively, and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;3.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2024 and 2023, respectively. Amortization over the next five years for finite life intangibles is expected to be &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the remainder of 2024, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in 2025, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in 2026, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in 2027, and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in 2028.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company completes its goodwill and indefinite life intangible asset impairment assessment annually in the fourth quarter, or more often if circumstances require. As a part of its impairment assessment, the Company first qualitatively assesses whether current events or changes in circumstances lead to a determination that it is more likely than not, defined as a likelihood of more than 50 percent, that the fair value of a reporting unit or indefinite life intangible asset is less than its carrying amount. If there is a qualitative determination that the fair value is more likely than not greater than the carrying value, the Company does not quantitatively test for impairment. If this qualitative assessment indicates a more likely than not potential that the asset may be impaired, the estimated fair value is calculated. If the estimated fair value is less than carrying value, an impairment charge is recorded.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;As of June 30, 2024, the Company reviewed its previous forecasts and assumptions based on its current projections, which are subject to various risks and uncertainties, including projected revenue, projected operational profit, terminal growth rates, and the cost of capital. The Company did not identify any triggering events during the three or six months ended June 30, 2024 that would require an interim impairment assessment of goodwill or intangible assets.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company&#x2019;s assumptions about future conditions important to its assessment of potential impairment of its goodwill and indefinite life intangible assets are subject to uncertainty, and the Company will continue to monitor these conditions in future periods as new information becomes available, and will update its analysis accordingly.&lt;/span&gt;&lt;/p&gt;</us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_63fb31ef-9150-4955-8ee0-c4fef31a0ce3">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Goodwill activity for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2024 and the year ended December 31, 2023 was as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:44.009%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.703%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.382%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.421999999999999%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.421999999999999%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Year ended December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Goodwill / Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Balance at beginning of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,570&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;183,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,508&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;110&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;27,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Foreign currency translation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;292&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;48&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;977&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;62&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Balance at end of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,570&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock>
    <us-gaap:Goodwill
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_185399d7-4772-4bfb-8c4d-a7390f5213e5"
      unitRef="U_USD">211326000</us-gaap:Goodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_668ed5b7-ccb7-4c37-bfc3-99cff6016c70"
      unitRef="U_USD">9570000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:Goodwill
      contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f"
      decimals="-3"
      id="F_e28b846c-bc98-4cd2-8bc1-29b09852cc0f"
      unitRef="U_USD">183197000</us-gaap:Goodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f"
      decimals="-3"
      id="F_39b4d6bf-65c9-487a-a3f5-36d362f1efbb"
      unitRef="U_USD">9508000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:GoodwillPurchaseAccountingAdjustments
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_4db0f0a8-1153-4272-9f21-899e8c533753"
      unitRef="U_USD">110000</us-gaap:GoodwillPurchaseAccountingAdjustments>
    <us-gaap:IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_5898b8cc-d8d6-493f-a955-ea0db58a4834"
      unitRef="U_USD">0</us-gaap:IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments>
    <us-gaap:GoodwillPurchaseAccountingAdjustments
      contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30"
      decimals="-3"
      id="F_62531e8b-69b8-46fe-8ab9-a5c67ab1360d"
      unitRef="U_USD">27152000</us-gaap:GoodwillPurchaseAccountingAdjustments>
    <us-gaap:IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments
      contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30"
      decimals="-3"
      id="F_b29bfbd3-dac6-4024-a58e-47f1234e6d9f"
      unitRef="U_USD">0</us-gaap:IndefiniteLivedIntangibleAssetsPurchaseAccountingAdjustments>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_330b19ce-d438-4ef3-b12c-dc66afb336b6"
      unitRef="U_USD">-292000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_6c369554-f5f5-4934-9948-d7a4e34eadb7"
      unitRef="U_USD">-48000</us-gaap:IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss
      contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30"
      decimals="-3"
      id="F_2fb49878-5c55-4156-81fa-d3fa3a8f54a1"
      unitRef="U_USD">977000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss
      contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30"
      decimals="-3"
      id="F_979477f8-ca5a-42f3-80cb-bf7f9040c945"
      unitRef="U_USD">62000</us-gaap:IndefiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_03138d15-4b9a-4c03-83a4-2ff016aa2dc2"
      unitRef="U_USD">211144000</us-gaap:Goodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_70051da9-7cba-4232-aa6b-d988e215b35a"
      unitRef="U_USD">9522000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:Goodwill
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_161a3bad-acd6-44a6-a60d-6ef1136593a8"
      unitRef="U_USD">211326000</us-gaap:Goodwill>
    <us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_de8b525f-f195-4231-a57e-cd8ae42be98c"
      unitRef="U_USD">9570000</us-gaap:IndefiniteLivedIntangibleAssetsExcludingGoodwill>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_9e20a575-d26b-4c2a-bfb4-aec5be0ff4fb">&lt;p style="margin-left:4.533%;text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Finite life intangible assets as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:44.009%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.002%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.062%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.04%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.421999999999999%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.04%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.421999999999999%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Accum. Amort.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Accum. Amort.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,508&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,517&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,061&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Customer lists&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;103,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;66,721&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;103,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;63,420&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Tradenames&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,094&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,688&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,094&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,001&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Foreign currency adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,397&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;207&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,083&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;56&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total intangible assets &#x2013; finite life&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;132,676&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;86,590&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;132,999&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;82,538&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_c414f97d-9f9b-43c9-a9e9-bed9d1236d0c"
      decimals="-3"
      id="F_8cdece97-66e5-42d3-afed-853914f054cc"
      unitRef="U_USD">16508000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_c414f97d-9f9b-43c9-a9e9-bed9d1236d0c"
      decimals="-3"
      id="F_c5f33c26-790d-45a7-a1d9-bdb74abef8e2"
      unitRef="U_USD">14388000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_a018f1b2-658d-4c69-b7f7-dbf160e42516"
      decimals="-3"
      id="F_cceb6940-94ff-4b1d-be10-0e5d9e8f7545"
      unitRef="U_USD">16517000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_a018f1b2-658d-4c69-b7f7-dbf160e42516"
      decimals="-3"
      id="F_515e9b94-1ec9-4729-b070-cd5066b15587"
      unitRef="U_USD">14061000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_cd0842a7-b2f7-4e1d-980f-d73684a2e49f"
      decimals="-3"
      id="F_855c8911-ed35-43eb-8eb0-c256541b01d4"
      unitRef="U_USD">103471000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_cd0842a7-b2f7-4e1d-980f-d73684a2e49f"
      decimals="-3"
      id="F_9200f8f2-8cca-4511-b813-a2ae66c24f0c"
      unitRef="U_USD">66721000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_e0fc021a-2670-48f7-ae3d-aa548ef6c5be"
      decimals="-3"
      id="F_786db812-9bee-4154-8d66-4b7e3ef96e73"
      unitRef="U_USD">103471000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_e0fc021a-2670-48f7-ae3d-aa548ef6c5be"
      decimals="-3"
      id="F_d7bcfa45-0f04-4d34-9d90-696656dcf282"
      unitRef="U_USD">63420000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_1a1e5efc-70ef-4256-b2a7-2de7d34fff85"
      decimals="-3"
      id="F_9a52d2a6-a20b-4fb1-962c-5a164ae3527e"
      unitRef="U_USD">14094000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_1a1e5efc-70ef-4256-b2a7-2de7d34fff85"
      decimals="-3"
      id="F_87392f63-1c57-4518-b0fb-eb3fe7e4273f"
      unitRef="U_USD">5688000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_00cd23d2-d68f-4afc-8c8f-2c64af7a8739"
      decimals="-3"
      id="F_0c66b344-f819-4012-8f3a-f7748066fc1e"
      unitRef="U_USD">14094000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_00cd23d2-d68f-4afc-8c8f-2c64af7a8739"
      decimals="-3"
      id="F_77ffc2f6-928b-4c2f-a1ff-4ec5c7109c69"
      unitRef="U_USD">5001000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_7205a319-ed90-4a5b-845e-c56b957a9a39"
      decimals="-3"
      id="F_66011dc9-af77-4678-b319-41f65d889b90"
      unitRef="U_USD">-1397000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_7205a319-ed90-4a5b-845e-c56b957a9a39"
      decimals="-3"
      id="F_11b067b6-4fac-4f88-9f5f-0ceda3d052d9"
      unitRef="U_USD">-207000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_2c8a4156-257c-4771-99eb-aa35394e53e8"
      decimals="-3"
      id="F_2bf33a40-44f4-410f-b9bd-a0fc1c59154a"
      unitRef="U_USD">-1083000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_2c8a4156-257c-4771-99eb-aa35394e53e8"
      decimals="-3"
      id="F_ff6e0b02-f8ae-48f5-bb8d-21fc34f9c8c6"
      unitRef="U_USD">56000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_acd00529-518d-46c1-9fc0-e68241368984"
      unitRef="U_USD">132676000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_84e27e9e-e5c4-4d9c-bc67-bfbc973cee05"
      unitRef="U_USD">86590000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_ad0ede92-6efd-4982-b414-2a554681e525"
      unitRef="U_USD">132999000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_7288db92-6173-4bbf-a8b3-4a6e95dcce83"
      unitRef="U_USD">82538000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_7f4dc617-9657-4fd5-81bc-2c6cf9b3bf04">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Finite life intangible asset activity for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2024 and 2023 was as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible assets &#x2013; finite life, net at beginning of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;50,461&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;35,251&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Amortization expense&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,315&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,430&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,708&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Foreign currency adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;60&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;370&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible assets &#x2013; finite life, net at end of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;46,086&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;42,899&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_ab31daad-7aab-4c51-ac7b-d44626da3dd1"
      unitRef="U_USD">50461000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_2451a01f-db86-4984-805d-aa5fa459e97f"
      decimals="-3"
      id="F_c78e32a0-8886-4cac-a584-85e4dcf99cf0"
      unitRef="U_USD">35251000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_ead63dcc-a986-4a08-85a9-418cd28b7399"
      unitRef="U_USD">4315000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_c3632376-adb4-435e-81a8-af8ef23e9b49"
      unitRef="U_USD">3430000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_00a43ed3-882c-4164-8974-d2446d24681b"
      unitRef="U_USD">0</us-gaap:FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments>
    <us-gaap:FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_0e17c5f4-796d-4b0d-af0b-a4db06d6cc8b"
      unitRef="U_USD">10708000</us-gaap:FiniteLivedIntangibleAssetsPurchaseAccountingAdjustments>
    <us-gaap:FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_48df1f65-211d-444a-bd17-1acd1899f1e5"
      unitRef="U_USD">60000</us-gaap:FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss>
    <us-gaap:FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_17303bff-d1be-4681-b0aa-5a22a7d621b9"
      unitRef="U_USD">-370000</us-gaap:FiniteLivedIntangibleAssetsForeignCurrencyTranslationGainLoss>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_42ed1aba-c9e3-4a49-a6fb-9960de9d2dd0"
      unitRef="U_USD">46086000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_4ae7e10f-e6a0-4338-afa2-eb839c19e635"
      decimals="-3"
      id="F_b998c361-82e7-4cd6-950b-0d5df9d713d4"
      unitRef="U_USD">42899000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_7e0cd8e3-b34b-4c6d-ae9d-897fd90367c9"
      unitRef="U_USD">2200000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-5"
      id="F_476ded04-992a-4140-9b68-264c934a62b9"
      unitRef="U_USD">1700000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_e6504dd1-e09c-4d08-ac34-ffe2313d1804"
      unitRef="U_USD">4300000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-5"
      id="F_0f2700d1-aafa-4484-9615-6b2be04e06ce"
      unitRef="U_USD">3400000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_250073c9-9982-4047-af0f-8352980d1e1b"
      unitRef="U_USD">4300000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_d3d401ca-1ea8-40e8-9f12-67a7abf4ae57"
      unitRef="U_USD">7600000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_1749832c-4016-47a8-9b52-6afc81eccb55"
      unitRef="U_USD">6200000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_3b7cb116-820b-42d9-a26f-ff463a25ec7c"
      unitRef="U_USD">6000000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_911133a5-94c4-47b6-baed-417320e44b36"
      unitRef="U_USD">5600000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_7c2393fc-3b78-4d65-9048-8a26c1bfcebd">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;7.	Accrued Expenses&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accrued expenses as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Compensation and related benefits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,854&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11,278&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Accrued warranty&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,478&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,105&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Contract liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,875&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Short-term operating lease liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,950&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,278&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,765&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total accrued expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;44,736&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;44,301&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_8382724d-cc1a-40a7-ad77-ad03f5c94c07">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Accrued expenses as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Compensation and related benefits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,854&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11,278&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Accrued warranty&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,478&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,105&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Contract liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,197&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,875&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Short-term operating lease liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,950&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,278&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,765&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total accrued expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;44,736&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;44,301&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_79610dfe-799a-4812-835e-17a656078534"
      unitRef="U_USD">8854000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_487f7cf0-6b46-4d80-8ede-7df549f44439"
      unitRef="U_USD">11278000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_d2e27ac0-b8a8-4a6b-a7c7-e18bc5f6f5d0"
      unitRef="U_USD">5478000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_1d952547-49b8-4a1a-b6e6-4f8127623b3f"
      unitRef="U_USD">5105000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <ceco:ContractLiabilityCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_19b8d428-2ed2-4897-9337-3e95a5cc6b6e"
      unitRef="U_USD">9197000</ceco:ContractLiabilityCurrent>
    <ceco:ContractLiabilityCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_e0a70510-75b5-4dea-be05-ee8a8b8c986e"
      unitRef="U_USD">7875000</ceco:ContractLiabilityCurrent>
    <ceco:LeaseLiabilitiesCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_2c744be6-fc83-4493-815a-2eb0cdaadc09"
      unitRef="U_USD">3950000</ceco:LeaseLiabilitiesCurrent>
    <ceco:LeaseLiabilitiesCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_e5851b41-a1c6-4a49-98e8-55bbe5dbe481"
      unitRef="U_USD">4278000</ceco:LeaseLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_0f67f41d-be9d-45ae-a3f5-fc62f4d9892f"
      unitRef="U_USD">17257000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_9ae9f084-43bf-4518-b99e-d9f1eef2ef96"
      unitRef="U_USD">15765000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_c4e536de-be9b-4095-984e-f05ec2632f4b"
      unitRef="U_USD">44736000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_4caaaf4c-2d62-43c3-a1a7-5b85796f887f"
      unitRef="U_USD">44301000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_0edff583-c902-474d-b65b-92f6d3f17adb">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;8.	Senior Debt&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Debt as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:68.754%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.58%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.902000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.58%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.182%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Outstanding borrowings under Credit Facility (defined below)&lt;br/&gt;&#160;&#160;&#160;&#160;&#160;Term loan payable in &lt;/span&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;quarterly&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;principal installments of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;550&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;through September&lt;br/&gt;&#160;&#160;&#160;&#160;&#160;2023, $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,232&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;through September 2025 and $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,977&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;thereafter with balance due upon&lt;br/&gt;&#160;&#160;&#160;&#160;&#160;maturity in December 2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Term loan&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;107,959&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;112,424&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Revolving credit facility&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,800&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,300&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total outstanding borrowings under the Credit Facility&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;123,759&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;129,724&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Outstanding borrowings under the joint venture term debt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,123&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,855&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Unamortized debt discount&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,056&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,296&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total outstanding borrowings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;130,826&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;137,283&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&#160;&#160;Less: current portion&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,580&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total debt, less current portion&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;120,246&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;126,795&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Scheduled principal payments under the Credit Facility and joint venture term debt are &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the remainder of 2024, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in 2025, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;111.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in 2026, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in 2027, and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;zero&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; in 2028.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Credit Facility&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;As of June 30, 2024 and December 31, 2023, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million of letters of credit were outstanding, respectively. Total unused credit availability, in consideration of borrowing limitations, under the Company&#x2019;s senior secured term loan and senior secured revolver loan with sub-facilities for letters of credit, swing-line loans and senior secured multi-currency loans (the "Credit Facility") was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;111.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;109.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million at June 30, 2024 and December 31, 2023, respectively. Revolving loans may be borrowed, repaid and reborrowed until December 17, 2026, at which time all outstanding balances of the Credit Facility must be repaid.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;At the Company&#x2019;s option, revolving loans and the term loans accrue interest at a per annum rate based on (a) either the highest of (i) the federal funds rate plus &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%, or (ii) the prime lending rate of the Agent (as defined in the Credit Facility), (b) Daily Simple SOFR plus the Daily Simple SOFR Adjustment of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.11&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; plus 1.0%, (c) 1.0%, plus a margin ranging from &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.75&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% depending on the Company&#x2019;s Consolidated Leverage Ratio, or (d) a one/three/six-month Term SOFR Rate (as defined in the Credit Facility) plus the Term SOFR Adjustment ranging from &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.11&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.43&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% p&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;lus &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.75&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% to 3&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;.25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% depending on the Company&#x2019;s Consolidated Leverage Ratio. Interest on swing line loans is the Base Rate.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Interest on Base Rate loans is payable quarterly in arrears on the last day of each calendar quarter and at maturity. Interest on Term SOFR rate loans is payable on the last date of each applicable Interest Period (as defined in the agreement), but in no event less than once every three months and at maturity. The weighted average stated interest rate on outstanding borrowings was &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7.88&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.29&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; at June 30, 2024 and December 31, 2023, respectively. The effective interest rate was &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.12&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7.70&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; at June 30, 2024 and December 31, 2023, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Under the terms of the Credit Facility, the Company is required to maintain certain financial covenants, including the maintenance of a Consolidated Net Leverage Ratio (as defined in the Credit Facility). In the third quarter of 2023, the Company entered into an Elevated Ratio Period resulting in a maximum Consolidated Net Leverage Ratio of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.00&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; through June 30, 2024, after which time it decreased to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.50&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; until the end of the term of the Credit Facility.&lt;br/&gt;&lt;br/&gt;The Company has granted a security interest in substantially all of its assets to secure its obligations pursuant to the Credit Facility. The Company&#x2019;s obligations under the Credit Facility are guaranteed by the Company&#x2019;s domestic subsidiaries and such guaranty obligations are secured by a security interest on substantially all the assets of such subsidiaries, including certain real property. The Company&#x2019;s obligations under the Credit Facility may also be guaranteed by the Company&#x2019;s material foreign subsidiaries to the extent no adverse tax consequences would result to the Company.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;As of June 30, 2024 and December 31, 2023, the Company was in compliance with all related financial and other restrictive covenants under the Credit Facility.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Joint Venture Debt&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;On March 7, 2022, the Company's Effox-Flextor-Mader, Inc. joint venture ("EFM JV"), for which the Company holds &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;63&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% of the equity, entered into a loan agreement secured by the assets of the EFM JV in the aggregate principal amount of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the acquisition of General Rubber, LLC ("GRC"). As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million was outstanding under the loan, respectively. Principal will be paid back to the lender monthly with the final installment due by February 27, 2027.  Interest is accrued at the per annum rate based on EFM JV's choice of the 1/3/6 month Term SOFR rate plus 3.25%, with a floor rate of 3.75%. Interest is paid monthly on the last day of each month. The interest rate at June 30, 2024 and December 31, 2023 was &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.52&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.70&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, respectively. As of June 30, 2024 and December 31, 2023, the EFM JV was in compliance with all related financial and other restrictive covenants under this loan agreement. This loan balance does not impact the Company&#x2019;s borrowing capacity or the financial covenants under the Credit Facility. As of June 30, 2024, there were &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in current assets, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in long-lived assets, and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;30.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in total liabilities related to the EFM JV included in the Condensed Consolidated Balance Sheets. As of December 31, 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, there were $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in current assets, $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in long-lived assets, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in total liabilities related to the EFM JV included in the Consolidated Balance Sheets. For the three months ended &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and 2023, the EFM JV accounted for &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in revenue, respectively, included in the Company's results. For the six months ended June 30, 2024 and 2023, the EFM JV accounted for &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;23.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in revenue, respectively, included in the Company's results.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Foreign Debt&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company has a number of bank guarantee facilities and bilateral lines of credit in various foreign countries currently supported by cash, letters of credit or pledged assets and collateral under the Credit Facility. In March 2023, the Company amended the Credit Facility, allowing letters of credit and bank guarantee issuances of up to $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;80.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million from the bilateral lines of cred&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;it secured through pledged assets and collateral under the Credit Facility. As of June 30, 2024 and December 31, 2023, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;48.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;45.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in bank guarantees were outstanding, respectively, inclusive of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in outstanding bank guarantees as of June 30, 2024 and December 31, 2023, respectively, under a Euro-denominated bank guarantee agreement held by a subsidiary of the Company located in the Netherlands and secured by local assets, as well as &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in outstanding bank guarantees as of  June 30, 2024 and December 31, 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, respectively, under Yuan-denominated bank guarantee agreements held by a subsidiary of the Company located in China and secured by local assets.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;    &lt;/span&gt;&lt;/p&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:ScheduleOfDebtTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_cb94b33c-21cb-492d-8fae-9a5fc13162f0">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Debt as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023 consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:68.754%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.58%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.902000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.58%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:12.182%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Outstanding borrowings under Credit Facility (defined below)&lt;br/&gt;&#160;&#160;&#160;&#160;&#160;Term loan payable in &lt;/span&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;quarterly&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;principal installments of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;550&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;through September&lt;br/&gt;&#160;&#160;&#160;&#160;&#160;2023, $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,232&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;through September 2025 and $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,977&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;thereafter with balance due upon&lt;br/&gt;&#160;&#160;&#160;&#160;&#160;maturity in December 2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Term loan&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;107,959&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;112,424&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Revolving credit facility&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,800&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17,300&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total outstanding borrowings under the Credit Facility&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;123,759&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;129,724&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Outstanding borrowings under the joint venture term debt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,123&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,855&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Unamortized debt discount&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,056&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,296&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total outstanding borrowings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;130,826&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;137,283&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&#160;&#160;Less: current portion&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,580&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total debt, less current portion&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;120,246&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;126,795&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfDebtTableTextBlock>
    <us-gaap:DebtInstrumentFrequencyOfPeriodicPayment
      contextRef="C_7436e234-3623-461d-b988-e60995d6a771"
      id="F_a93213e4-2fca-42de-8bf6-0ce93d014325">quarterly</us-gaap:DebtInstrumentFrequencyOfPeriodicPayment>
    <us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal
      contextRef="C_f1d8c224-eeb9-4076-907e-840c7028a2ae"
      decimals="-3"
      id="F_46b5e4aa-27a3-4227-8496-7a0a41d6bb72"
      unitRef="U_USD">550000</us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal>
    <us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal
      contextRef="C_2edb3a2e-f9ec-4841-9ec6-21e75ef00b8c"
      decimals="-3"
      id="F_238a0223-58e1-48b3-ac1b-f28813cf7219"
      unitRef="U_USD">2232000</us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal>
    <us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal
      contextRef="C_d3f73ada-3db6-4e21-8188-fd15ee65304d"
      decimals="-3"
      id="F_98b27857-dfeb-43ba-a80d-7c98cd90e2d0"
      unitRef="U_USD">2977000</us-gaap:LineOfCreditFacilityPeriodicPaymentPrincipal>
    <us-gaap:LongTermDebt
      contextRef="C_312b96ea-ee3c-43b5-933a-d65043f455a4"
      decimals="-3"
      id="F_c61314e7-3342-46f1-8b1e-4d8eba01e4b1"
      unitRef="U_USD">107959000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="C_e3b2c967-afa0-4d33-9e76-b5e7187e533b"
      decimals="-3"
      id="F_6eaf6de5-bcb4-44c6-9834-e7321d73d875"
      unitRef="U_USD">112424000</us-gaap:LongTermDebt>
    <us-gaap:LineOfCredit
      contextRef="C_db1a5d1e-9a28-486d-acf1-ef093b253c27"
      decimals="-3"
      id="F_a9da042e-dd66-470b-9596-23f644be9d60"
      unitRef="U_USD">15800000</us-gaap:LineOfCredit>
    <us-gaap:LineOfCredit
      contextRef="C_332373d6-9305-4dc3-b6d8-7c09bd6b203d"
      decimals="-3"
      id="F_fc488a93-c349-42a5-9868-e5bf504d0ce7"
      unitRef="U_USD">17300000</us-gaap:LineOfCredit>
    <us-gaap:LongTermDebt
      contextRef="C_9ee6fcc3-ffb2-4d85-9493-f70f41857445"
      decimals="-3"
      id="F_fae9ddb0-2519-4e2b-bf4f-acc1f84823aa"
      unitRef="U_USD">123759000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="C_8d9dd0fa-eeae-49e5-9562-18d1558786cb"
      decimals="-3"
      id="F_b5db56e1-cf93-4daa-bac8-e3757140babe"
      unitRef="U_USD">129724000</us-gaap:LongTermDebt>
    <us-gaap:WarehouseAgreementBorrowings
      contextRef="C_20ad0766-ebe6-4ca3-a137-5724798774e5"
      decimals="-3"
      id="F_72b11b9f-b462-4a81-aaeb-ef7f9047207c"
      unitRef="U_USD">8123000</us-gaap:WarehouseAgreementBorrowings>
    <us-gaap:WarehouseAgreementBorrowings
      contextRef="C_51832032-b6bb-40d0-8eb8-ee78b2df72e5"
      decimals="-3"
      id="F_b1d72700-1346-4d25-a51c-90c3db718da9"
      unitRef="U_USD">8855000</us-gaap:WarehouseAgreementBorrowings>
    <us-gaap:DebtInstrumentUnamortizedDiscount
      contextRef="C_ad40e8cf-f2fd-488f-ad89-bf9bd65602d7"
      decimals="-3"
      id="F_187d540a-5ee8-48ce-9f9e-097f41033250"
      unitRef="U_USD">1056000</us-gaap:DebtInstrumentUnamortizedDiscount>
    <us-gaap:DebtInstrumentUnamortizedDiscount
      contextRef="C_74a8fc1b-f6be-4fc4-a0b9-9d15cc2d0f6b"
      decimals="-3"
      id="F_7e8c34e4-557b-4ac0-a2ee-cbb12d929808"
      unitRef="U_USD">1296000</us-gaap:DebtInstrumentUnamortizedDiscount>
    <us-gaap:LongTermDebt
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_babf986f-9c6c-426a-bd1c-298f735618db"
      unitRef="U_USD">130826000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebt
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_fa5610b5-1df3-4c56-8679-056602190a54"
      unitRef="U_USD">137283000</us-gaap:LongTermDebt>
    <us-gaap:LongTermDebtCurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_0ab9c770-5826-4498-81da-dd6707886c24"
      unitRef="U_USD">10580000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtCurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_151775af-c1d4-467f-8e0b-b55389004476"
      unitRef="U_USD">10488000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_4805d729-2d18-4652-ad36-929437ff230f"
      unitRef="U_USD">120246000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_1e33723d-45ab-48af-911d-82d1235e1550"
      unitRef="U_USD">126795000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_38738f67-57aa-4ec8-a0b9-5857b8f0cf69"
      unitRef="U_USD">5300000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_dad226dd-1719-4eb7-8fe6-76b1ac908084"
      unitRef="U_USD">11300000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_3cd411f4-22c4-477a-9492-8b4ee608c14c"
      unitRef="U_USD">111400000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_6416701a-8d9d-4b2e-9e7e-f2961f9da014"
      unitRef="U_USD">3900000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_11077ad8-8190-4da9-bdeb-68d7e0ce38dc"
      unitRef="U_USD">0</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="C_8b3871f4-911f-4c70-a464-99f1e1215284"
      decimals="-5"
      id="F_dc986a16-eb63-4a7a-b8af-58ffeda5ad41"
      unitRef="U_USD">13200000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="C_0b9f9325-4217-450d-9cac-d1594309dffe"
      decimals="-5"
      id="F_dbd7d6b8-f83d-46c0-b172-c9adc8b4fccd"
      unitRef="U_USD">13300000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:DebtInstrumentUnusedBorrowingCapacityAmount
      contextRef="C_71fb9316-8c3d-423b-9ebb-a376ff80e2f2"
      decimals="-5"
      id="F_d200e6b1-641c-44c2-b15a-991b7089445d"
      unitRef="U_USD">111000000</us-gaap:DebtInstrumentUnusedBorrowingCapacityAmount>
    <us-gaap:DebtInstrumentUnusedBorrowingCapacityAmount
      contextRef="C_bfa36cb0-caf8-4ef9-a454-7c3ba4fef4da"
      decimals="-5"
      id="F_d3e7b18e-8461-4bdf-8e72-8440da3220b8"
      unitRef="U_USD">109400000</us-gaap:DebtInstrumentUnusedBorrowingCapacityAmount>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="C_bfd1c8f4-4ec4-4cd3-9046-5b61623b7f3f"
      decimals="3"
      id="F_48f05c7a-b137-4e17-8666-5d5ae2427490"
      unitRef="U_pure">0.005</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="C_2b122b27-701e-4e52-b9b5-83ead83e986e"
      decimals="4"
      id="F_3d9afefb-6688-426a-911f-7d470761d490"
      unitRef="U_pure">0.0011</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="C_00d0f9ca-31ff-446b-ab53-b010c28709ff"
      decimals="4"
      id="F_30ee6644-6b08-4cef-8e84-74653369449f"
      unitRef="U_pure">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="C_d0fae3b1-654e-4bfc-b02b-060a8b2a903c"
      decimals="4"
      id="F_f25ed830-23aa-414e-adad-9975b0cffb1c"
      unitRef="U_pure">0.0325</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="C_87db28aa-f981-49b7-a48f-0347e97ecd19"
      decimals="4"
      id="F_5a548c02-eae5-4874-ad57-f362c2572e0b"
      unitRef="U_pure">0.0011</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="C_efd85aef-608d-4037-831f-20a396347ca1"
      decimals="4"
      id="F_901064bc-a218-4049-9280-e36764db2430"
      unitRef="U_pure">0.0043</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <ceco:MaximumConsolidatedLeverageRatio
      contextRef="C_3d6177c4-3607-4592-87d2-65dc15e8c82d"
      decimals="4"
      id="F_dfd6d0e6-b5ef-493f-b4fe-fe344add9a38"
      unitRef="U_pure">0.0175</ceco:MaximumConsolidatedLeverageRatio>
    <ceco:MaximumConsolidatedLeverageRatio
      contextRef="C_0a5b1628-ce6e-4701-82d3-2d742f925ace"
      decimals="4"
      id="F_6b7df536-326c-4b10-9fdd-c936304b5898"
      unitRef="U_pure">0.0025</ceco:MaximumConsolidatedLeverageRatio>
    <us-gaap:DebtWeightedAverageInterestRate
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="4"
      id="F_65ec32a7-9995-42d9-ac82-75ba0c4e1fa8"
      unitRef="U_pure">0.0788</us-gaap:DebtWeightedAverageInterestRate>
    <us-gaap:DebtWeightedAverageInterestRate
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="4"
      id="F_46f43186-ab22-4eb9-aa02-daaa13f0a083"
      unitRef="U_pure">0.0829</us-gaap:DebtWeightedAverageInterestRate>
    <us-gaap:DebtInstrumentInterestRateEffectivePercentage
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="4"
      id="F_da239a0f-2fc3-4527-ad80-504bc58181d3"
      unitRef="U_pure">0.0812</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
    <us-gaap:DebtInstrumentInterestRateEffectivePercentage
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="4"
      id="F_598700a3-6cf7-4e0d-9a27-bdb66edbc0c0"
      unitRef="U_pure">0.077</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
    <ceco:MaximumConsolidatedLeverageRatio
      contextRef="C_6493674e-373e-4ed5-a3d2-50234a50e8fd"
      decimals="4"
      id="F_a5728d28-fc5a-46ea-8a86-da4d45892bc0"
      unitRef="U_pure">0.04</ceco:MaximumConsolidatedLeverageRatio>
    <ceco:MaximumConsolidatedLeverageRatio
      contextRef="C_a5d0dec5-c2b7-471c-8a22-95f23364f3a3"
      decimals="4"
      id="F_db0808c8-063e-484b-8cb8-217826949427"
      unitRef="U_pure">0.035</ceco:MaximumConsolidatedLeverageRatio>
    <us-gaap:MinorityInterestOwnershipPercentageByParent
      contextRef="C_8c1e9305-5b24-4036-b6b5-fe398308abc9"
      decimals="2"
      id="F_508f7955-05a2-4f67-b1c0-16ea9003e059"
      unitRef="U_pure">0.63</us-gaap:MinorityInterestOwnershipPercentageByParent>
    <us-gaap:SecuredDebt
      contextRef="C_8c1e9305-5b24-4036-b6b5-fe398308abc9"
      decimals="-5"
      id="F_a536ca09-b797-45cb-9ffe-6075206c4056"
      unitRef="U_USD">11000000</us-gaap:SecuredDebt>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="C_489abd39-3499-4133-95b9-6d787ce5d31c"
      decimals="-5"
      id="F_d65d45d8-ab68-4ec5-944c-8d4bbd5358a9"
      unitRef="U_USD">8100000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="C_629d617c-951a-49ee-86ee-d0d25b5ec4d8"
      decimals="-5"
      id="F_b8d632a0-1280-418b-aa93-f8b233fad556"
      unitRef="U_USD">8900000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:DebtWeightedAverageInterestRate
      contextRef="C_47c9b570-d993-43d4-b232-5e23b60d591f"
      decimals="4"
      id="F_70177612-5585-4f81-bfe1-1a5448187235"
      unitRef="U_pure">0.0852</us-gaap:DebtWeightedAverageInterestRate>
    <us-gaap:DebtWeightedAverageInterestRate
      contextRef="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe"
      decimals="4"
      id="F_82bdfac8-9dc9-463d-81c1-bb66ac5673ab"
      unitRef="U_pure">0.087</us-gaap:DebtWeightedAverageInterestRate>
    <us-gaap:AssetsCurrent
      contextRef="C_47c9b570-d993-43d4-b232-5e23b60d591f"
      decimals="-5"
      id="F_d9dd4474-f71d-4ba8-a62a-3095cfbd1feb"
      unitRef="U_USD">16700000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsNoncurrent
      contextRef="C_47c9b570-d993-43d4-b232-5e23b60d591f"
      decimals="-5"
      id="F_361f8964-b53f-4fec-83a1-e4580acb624d"
      unitRef="U_USD">26100000</us-gaap:AssetsNoncurrent>
    <us-gaap:Liabilities
      contextRef="C_47c9b570-d993-43d4-b232-5e23b60d591f"
      decimals="-5"
      id="F_22a664eb-cf22-4432-acdd-0399025fe7ce"
      unitRef="U_USD">30200000</us-gaap:Liabilities>
    <us-gaap:AssetsCurrent
      contextRef="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe"
      decimals="-5"
      id="F_9a067a7f-2494-4a53-9a65-cb76f92ea391"
      unitRef="U_USD">14500000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsNoncurrent
      contextRef="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe"
      decimals="-5"
      id="F_2edab1f6-750d-463b-88ea-3a350791b335"
      unitRef="U_USD">26700000</us-gaap:AssetsNoncurrent>
    <us-gaap:Liabilities
      contextRef="C_c6e205ef-bdc0-4cdd-978f-344da8d11ebe"
      decimals="-5"
      id="F_0ff19b46-5812-411d-9471-1d49863186d8"
      unitRef="U_USD">12500000</us-gaap:Liabilities>
    <us-gaap:Revenues
      contextRef="C_2bc42023-59af-4e84-857a-1aa2b7c1db33"
      decimals="-5"
      id="F_3906045e-18ce-456f-a2d7-4af1197454be"
      unitRef="U_USD">13200000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_ed352a48-b629-4e4e-aefc-3e134a2ef268"
      decimals="-5"
      id="F_ff8ac098-40f0-4734-8c3f-af6d3b0db6de"
      unitRef="U_USD">9900000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_c1e40902-c5cd-4a79-97a8-8c2a20315c32"
      decimals="-5"
      id="F_9d82bd31-41c8-4300-83b0-da6395cd98f8"
      unitRef="U_USD">23900000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_ffdbfa94-6ea5-41d7-846c-6f63a4e98665"
      decimals="-5"
      id="F_9b4225cb-0dfb-4841-9213-bc9c4eba29ac"
      unitRef="U_USD">19300000</us-gaap:Revenues>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="C_9cc1a325-f1c5-4984-96e2-38072f792420"
      decimals="-5"
      id="F_60d7c239-9c23-437a-a7d9-555843bb9f66"
      unitRef="U_USD">80000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCredit
      contextRef="C_d9b6b72a-350d-4fbe-ac0e-addf1b303b73"
      decimals="-5"
      id="F_5f031ee9-c9ad-4dbb-b77f-64b6b172a8b5"
      unitRef="U_USD">48300000</us-gaap:LineOfCredit>
    <us-gaap:LineOfCredit
      contextRef="C_5f2fd9f9-203e-405b-be71-f65a6734b28e"
      decimals="-5"
      id="F_1227e743-4cda-4962-9713-ef83cfe60135"
      unitRef="U_USD">45800000</us-gaap:LineOfCredit>
    <us-gaap:LineOfCredit
      contextRef="C_589e9132-8dd4-4c77-be8b-d13a3828cf8f"
      decimals="-5"
      id="F_2f453f11-efba-4730-b359-0f672be3bfc8"
      unitRef="U_USD">1900000</us-gaap:LineOfCredit>
    <us-gaap:LineOfCredit
      contextRef="C_5b7c892b-9787-4971-969c-53f51b5ba2b6"
      decimals="-5"
      id="F_029c9d3a-2e34-4850-bd55-d2ecddbff9ba"
      unitRef="U_USD">1300000</us-gaap:LineOfCredit>
    <us-gaap:LineOfCredit
      contextRef="C_a494d4bc-4b96-4d25-ace1-837f7c055e28"
      decimals="-5"
      id="F_137bfd57-e3eb-4587-9085-4fd9410aea0a"
      unitRef="U_USD">2800000</us-gaap:LineOfCredit>
    <us-gaap:LineOfCredit
      contextRef="C_f2255341-43e2-4fe8-abbb-3d8614762ce2"
      decimals="-5"
      id="F_ad7740e9-cf73-4aeb-833e-81b5aa9f572f"
      unitRef="U_USD">2300000</us-gaap:LineOfCredit>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_8a1d29e2-8a5f-4ff2-a09a-0277f27c7152">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;9.	Earnings per Share&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:11pt;font-family:'Calibri',sans-serif;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The computational components of basic and diluted earnings per share for the three months ended &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and 2023 are as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Numerator &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(for basic and diluted earnings per share)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;Net income attributable to CECO Environmental Corp.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,485&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,724&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Denominator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Basic weighted-average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,918&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,619&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Common stock equivalents arising from stock options and restricted stock awards&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,385&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;525&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Diluted weighted-average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;36,303&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;35,144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The computational components of basic and diluted earnings per share for the six months ended June 30, 2024 and 2023 are as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Numerator &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(for basic and diluted earnings per share)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;Net income attributable to CECO Environmental Corp.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,993&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,701&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Denominator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Basic weighted-average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,882&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,531&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Common stock equivalents arising from stock options and restricted stock awards&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,357&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;641&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Diluted weighted-average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;36,239&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;35,172&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Options and restricted stock units included in the computation of diluted earnings per share are calculated using the treasury stock method. For the three months ended June 30, 2024 and 2023, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;zero&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively, and for the six months ended June 30, 2024 and 2023, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively, of outstanding options and restricted stock units were excluded from the computation of diluted earnings per share due to their having an anti-dilutive effect.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Once a restricted stock unit vests, it is included in the computation of weighted average shares outstanding for purposes of basic and diluted earnings per share.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Common Stock Repurchase&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;On May 10, 2022, the Company's Board of Directors authorized a share repurchase program under which the Company may purchase up to $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;20.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million of its outstanding shares of common stock through April 30, 2025. The authorization permits the Company to repurchase shares in the open market, through accelerated share repurchases, block trades, Rule 10b5-1 trading plans or through privately negotiated transactions in accordance with applicable laws, rules and regulations. During the three and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, the Company repurchased approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;86,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;230,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; shares under the program, respectively, for a cost of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;5.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively. There were &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; shares repurchased under the program during the three or six months ended June 30, 2023.&lt;/span&gt;&lt;/p&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_3be5a270-ce13-4184-9ccb-fcd6656b2e56">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The computational components of basic and diluted earnings per share for the three months ended &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and 2023 are as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Numerator &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(for basic and diluted earnings per share)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;Net income attributable to CECO Environmental Corp.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,485&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,724&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Denominator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Basic weighted-average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,918&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,619&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Common stock equivalents arising from stock options and restricted stock awards&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,385&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;525&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Diluted weighted-average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;36,303&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;35,144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The computational components of basic and diluted earnings per share for the six months ended June 30, 2024 and 2023 are as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Numerator &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(for basic and diluted earnings per share)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;Net income attributable to CECO Environmental Corp.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,993&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,701&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Denominator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Basic weighted-average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,882&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;34,531&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ccecff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:9.5pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Common stock equivalents arising from stock options and restricted stock awards&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,357&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;641&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Diluted weighted-average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;36,239&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;35,172&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_2c8a58f1-0480-4635-81f5-fdf8ae643f7d"
      unitRef="U_USD">4485000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_2bbac94c-cf56-416c-921b-a313b018923e"
      unitRef="U_USD">3724000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_3ec17416-474a-4343-9f95-5b31bce70f11"
      unitRef="U_shares">34918000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_07c11ef1-df38-4579-8028-72ecf42758b0"
      unitRef="U_shares">34619000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_0a030ab2-09ca-44e6-8138-78d649c68fe3"
      unitRef="U_shares">1385000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_f73ee239-b4ec-482d-afc2-6b4a4d287aa7"
      unitRef="U_shares">525000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_5f1126c5-0a62-4f8b-9c29-a7c38c49a4d9"
      unitRef="U_shares">36303000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_7ecd31ef-9ded-4c74-9c32-3828937b45da"
      unitRef="U_shares">35144000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_795aa215-5a8e-421a-9fd0-150ad5c01fe1"
      unitRef="U_USD">5993000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_64280dfd-197d-4f27-bec7-414a7f097607"
      unitRef="U_USD">5701000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_2a6fb545-4158-4592-b8e1-603c10d16c8c"
      unitRef="U_shares">34882000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_1d8b7f91-8d41-4271-8809-58d86ef789b0"
      unitRef="U_shares">34531000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_fe4e433a-d700-4188-a2b3-1b25e23f3909"
      unitRef="U_shares">1357000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_c9af7604-d959-41a9-ba08-4a6a1415f5c9"
      unitRef="U_shares">641000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_a9face87-8f19-473b-b8fe-a07da52fabbf"
      unitRef="U_shares">36239000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_ee73b366-ad02-4870-b734-8bc7b51f7ba2"
      unitRef="U_shares">35172000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-6"
      id="F_7b2e0fc0-53d1-409e-bcda-ecf6ca7af08a"
      unitRef="U_shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-5"
      id="F_00a96fb5-2650-4bfb-b3ae-da47ce2647ec"
      unitRef="U_shares">1300000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_e56f5bde-2c81-4625-96a2-eda684a3c081"
      unitRef="U_shares">100000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-5"
      id="F_b9d8e94b-cae6-4e42-809b-5fc90577bd6b"
      unitRef="U_shares">700000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
      contextRef="C_2589d1f0-4ead-437e-ae19-c64f5ab99b2a"
      decimals="-5"
      id="F_8a7d6615-9ac3-4908-a22a-faf528ed0fcc"
      unitRef="U_USD">20000000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="0"
      id="F_6e87d689-1b3a-4abc-8a63-5d1ac1c7c12d"
      unitRef="U_shares">86000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="0"
      id="F_86aeed37-4f06-4ca2-859c-64bd67fd07c4"
      unitRef="U_shares">230000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_66f65ec1-82b3-468d-b2c1-eb3ed61277da"
      unitRef="U_USD">2000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_03e16bc0-efdc-427e-8749-f53df0c93ded"
      unitRef="U_USD">5000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="0"
      id="F_fc44ae69-44eb-4443-8a69-65976eb0a740"
      unitRef="U_shares">0</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="0"
      id="F_3e757b32-ce58-4afa-ab3a-eda56ee86021"
      unitRef="U_shares">0</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_04c18720-c6b7-45f2-acfd-6efadce0bad7">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;10.	Share-Based Compensation&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company accounts for share-based compensation in accordance with Accounting Standards Codification (&#x201c;ASC&#x201d;) Topic 718, &#x201c;Compensation &#x2013; Stock Compensation,&#x201d; which requires the Company to recognize compensation expense for share-based awards, measured at the fair value of the awards at the grant date. The Company recognized &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million of share-based compensation related expense during the three months ended June 30, 2024 and 2023, respectively, and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million of share-based compensation related expense during the six months ended June 30, 2024 and 2023, respectively.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company granted approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;57,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;50,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; restricted stock units during the three months ended June 30, 2024 and 2023, respectively, and approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;341,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;390,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; restricted stock units during the six months ended June 30, 2024 and 2023, respectively. In addition, the Company granted approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;25,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;zero&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; stock options during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;ended June 30, 2024 and 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, respectively. &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;No&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; stock options were granted during the three months ended &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;There were approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;25,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; options exercised during the three months ended &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and 2023, respectively, for which the Company received &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in cash, respectively, from employees and directors. The intrinsic value of options exercised was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for each of the three months ended June 30, 2024 and 2023. There were approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;20,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;77,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; options exercised during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2024 and 2023, respectively, for which the Company received &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;0.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in cash, respectively, from employees and directors. The intrinsic value of options exercised was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for each of the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2024 and 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_9cf2e3f6-531f-4487-9ca2-0999ecd255bd"
      unitRef="U_USD">2200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-5"
      id="F_51464da0-4976-40aa-82d1-49fb5ea56ae1"
      unitRef="U_USD">1200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_da39ea0c-0c86-4f67-89ab-4a69a6ddb710"
      unitRef="U_USD">3800000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-5"
      id="F_255a3c67-ed17-40f3-82c2-4e9251443208"
      unitRef="U_USD">2000000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_fac8fa4d-a6d7-4a4c-9647-4b06d933ac64"
      decimals="INF"
      id="F_acb62ab1-88a0-42a2-81e6-3ed1dbd055ca"
      unitRef="U_shares">57000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_f10c1a04-d195-4d69-b158-bf0dfcb34eea"
      decimals="INF"
      id="F_abd41657-a9fc-41e8-bd56-01e21dd4c8a1"
      unitRef="U_shares">50000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_c74d0fc9-94ee-4d75-b6d2-bff80b5c7d52"
      decimals="INF"
      id="F_1bdf6df8-1fb6-44b4-a511-4e07b8a5f769"
      unitRef="U_shares">341000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_2706c733-d34b-4031-8842-25e6af288a6a"
      decimals="INF"
      id="F_ec782100-0c68-4aeb-b73d-a6dbd1419269"
      unitRef="U_shares">390000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_c74d0fc9-94ee-4d75-b6d2-bff80b5c7d52"
      decimals="INF"
      id="F_00743bad-f086-48ab-96b4-54fb7ab052c1"
      unitRef="U_shares">25000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_2706c733-d34b-4031-8842-25e6af288a6a"
      decimals="INF"
      id="F_110bde55-8b40-4173-8fa4-2bc3176d8acf"
      unitRef="U_shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_fac8fa4d-a6d7-4a4c-9647-4b06d933ac64"
      decimals="INF"
      id="F_d7cb726d-b8bb-4e79-9278-b6e22bef3999"
      unitRef="U_shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_f10c1a04-d195-4d69-b158-bf0dfcb34eea"
      decimals="INF"
      id="F_620fdf90-cff4-4ed8-a4c0-6e381927671e"
      unitRef="U_shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_7a64fcc3-da23-4ddd-a578-c91b7c0573b1"
      decimals="0"
      id="F_70fd2b65-eb9f-430e-b922-408253551dd9"
      unitRef="U_shares">10000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_29308d50-6419-4d97-a577-ab1f6fccce01"
      decimals="0"
      id="F_ca64f3ec-2674-4f6f-ab16-7e7ea2424582"
      unitRef="U_shares">25000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ProceedsFromStockPlans
      contextRef="C_7a64fcc3-da23-4ddd-a578-c91b7c0573b1"
      decimals="-5"
      id="F_cc9835d6-ed15-4880-83c3-5e80b01a4abb"
      unitRef="U_USD">200000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromStockPlans
      contextRef="C_29308d50-6419-4d97-a577-ab1f6fccce01"
      decimals="-5"
      id="F_64a37cba-7da9-4063-9314-30161a901bee"
      unitRef="U_USD">300000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_7a64fcc3-da23-4ddd-a578-c91b7c0573b1"
      decimals="-5"
      id="F_3dd08555-c9f2-4dc0-8372-dd7f63af2e53"
      unitRef="U_USD">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_29308d50-6419-4d97-a577-ab1f6fccce01"
      decimals="-5"
      id="F_94252335-4dbc-4dd3-a6b8-7216e48b5d4e"
      unitRef="U_USD">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_bafbfb8a-0c0c-4d5a-a954-15bda449f1b0"
      decimals="0"
      id="F_151dd467-f35a-4a80-b1a3-7e9ec1244a1a"
      unitRef="U_shares">20000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_6a455b2c-8ed7-4695-86d0-e23d85800e42"
      decimals="0"
      id="F_c8adf2f1-a39a-472b-a16f-eecfedb072ad"
      unitRef="U_shares">77000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ProceedsFromStockPlans
      contextRef="C_bafbfb8a-0c0c-4d5a-a954-15bda449f1b0"
      decimals="-5"
      id="F_7a5dab39-b977-435b-a1ee-dbb7294cac4a"
      unitRef="U_USD">300000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromStockPlans
      contextRef="C_6a455b2c-8ed7-4695-86d0-e23d85800e42"
      decimals="-5"
      id="F_01278055-48ac-4d39-b595-8a2674b8c0bb"
      unitRef="U_USD">900000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_fea4aaa8-2118-4874-9dd4-2ac0fedb31cc"
      unitRef="U_USD">200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-5"
      id="F_1c79617d-0136-4023-9c8b-46d2fd11727b"
      unitRef="U_USD">200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_de7b0cf0-e0d8-4353-a0c3-020c7510ac95">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;11.	Pension and Employee Benefit Plans&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company sponsors a non-contributory defined benefit pension plan for certain union employees. The plan is funded in accordance with the funding requirements of the Employee Retirement Income Security Act of 1974.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company presents the components of net periodic benefit cost within &#x201c;Other (expense) income, net&#x201d; on the Condensed Consolidated Statements of Income.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Retirement plan expense is based on valuations performed by plan actuaries as of the beginning of each fiscal year. The components of the pension plan expense consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Interest cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;304&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;318&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;608&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;637&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Expected return on plan assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;304&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;285&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;608&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;571&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Amortization of net actuarial loss&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;57&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;113&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;148&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net periodic benefit cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;57&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;107&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;113&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;214&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company made contributions to its defined benefit plan of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million during the three and six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;. &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;No&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; contributions were made to the plan during the three and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;six months ended June 30, 2023. For the remainder of 2024, the Company expects to make contributions of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; to fund the pension plan. The unfunded liability of the plan of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million as of June 30, 2024 and December 31, 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, respectively, is included in &#x201c;Other liabilities&#x201d; on the Condensed Consolidated Balance Sheets.&lt;/span&gt;&lt;/p&gt;</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <us-gaap:ScheduleOfNetBenefitCostsTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_9c650499-b8d0-40a5-ba7c-3bd4905ce255">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Retirement plan expense is based on valuations performed by plan actuaries as of the beginning of each fiscal year. The components of the pension plan expense consisted of the following:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Interest cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;304&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;318&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;608&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;637&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Expected return on plan assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;304&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;285&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;608&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;571&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Amortization of net actuarial loss&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;57&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;113&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;148&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net periodic benefit cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;57&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;107&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;113&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;214&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfNetBenefitCostsTableTextBlock>
    <us-gaap:DefinedBenefitPlanInterestCost
      contextRef="C_3da024f4-e712-4f4d-8534-68f3deb4eeae"
      decimals="-3"
      id="F_5af53f73-e3aa-43fa-a7db-9cbcf6e0afd1"
      unitRef="U_USD">304000</us-gaap:DefinedBenefitPlanInterestCost>
    <us-gaap:DefinedBenefitPlanInterestCost
      contextRef="C_0c970210-db05-49b8-8ba3-cb7aa9c78a5f"
      decimals="-3"
      id="F_590e8997-aac2-40bb-9056-4d549a60e1a1"
      unitRef="U_USD">318000</us-gaap:DefinedBenefitPlanInterestCost>
    <us-gaap:DefinedBenefitPlanInterestCost
      contextRef="C_0c7d46de-789a-4433-8fe7-cb32db8159ca"
      decimals="-3"
      id="F_09f450ea-a22e-475b-9cc3-337a8ebb5b62"
      unitRef="U_USD">608000</us-gaap:DefinedBenefitPlanInterestCost>
    <us-gaap:DefinedBenefitPlanInterestCost
      contextRef="C_7e58e3b9-546f-4f3e-b0f6-c13ebf796a4d"
      decimals="-3"
      id="F_7f9327a2-6395-4a61-9c47-11de204727d4"
      unitRef="U_USD">637000</us-gaap:DefinedBenefitPlanInterestCost>
    <us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets
      contextRef="C_3da024f4-e712-4f4d-8534-68f3deb4eeae"
      decimals="-3"
      id="F_005cb604-3a30-4317-ae28-648d9054bb8a"
      unitRef="U_USD">304000</us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets>
    <us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets
      contextRef="C_0c970210-db05-49b8-8ba3-cb7aa9c78a5f"
      decimals="-3"
      id="F_0b69a5d3-11b7-4243-8b1f-07c31e19b96a"
      unitRef="U_USD">285000</us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets>
    <us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets
      contextRef="C_0c7d46de-789a-4433-8fe7-cb32db8159ca"
      decimals="-3"
      id="F_8ecefb21-5599-4d95-b9a0-d7e17d621a06"
      unitRef="U_USD">608000</us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets>
    <us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets
      contextRef="C_7e58e3b9-546f-4f3e-b0f6-c13ebf796a4d"
      decimals="-3"
      id="F_c469b872-f080-410e-ae37-435153d31690"
      unitRef="U_USD">571000</us-gaap:DefinedBenefitPlanExpectedReturnOnPlanAssets>
    <us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses
      contextRef="C_3da024f4-e712-4f4d-8534-68f3deb4eeae"
      decimals="-3"
      id="F_b5583b93-10a1-454e-a7d8-968c98722d45"
      unitRef="U_USD">-57000</us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses>
    <us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses
      contextRef="C_0c970210-db05-49b8-8ba3-cb7aa9c78a5f"
      decimals="-3"
      id="F_3c088e02-feac-4b56-a9c0-a5adbffc0e71"
      unitRef="U_USD">-74000</us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses>
    <us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses
      contextRef="C_0c7d46de-789a-4433-8fe7-cb32db8159ca"
      decimals="-3"
      id="F_d461f6ae-0283-42b0-9916-56f53ca54d27"
      unitRef="U_USD">-113000</us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses>
    <us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses
      contextRef="C_7e58e3b9-546f-4f3e-b0f6-c13ebf796a4d"
      decimals="-3"
      id="F_94150ee4-4541-4e06-8990-14e684583d7b"
      unitRef="U_USD">-148000</us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses>
    <us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost
      contextRef="C_88bff4ba-8317-4837-938d-f9fc37b50aca"
      decimals="-3"
      id="F_f0aa8907-bfe5-4660-b22e-5eafb4d2eba3"
      unitRef="U_USD">57000</us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost>
    <us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost
      contextRef="C_20500dc9-bbe0-4a66-9012-b50ee4c1d26c"
      decimals="-3"
      id="F_e3cebd92-3cdb-4e01-b405-772a28e5f88f"
      unitRef="U_USD">107000</us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost>
    <us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost
      contextRef="C_1050d7c0-8e0d-4f6d-aa00-1d66b7e53e4a"
      decimals="-3"
      id="F_79c673a5-9597-4290-92a6-2f2edff06bd8"
      unitRef="U_USD">113000</us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost>
    <us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost
      contextRef="C_2a293b5a-4932-40dc-a332-dfc222e16e6b"
      decimals="-3"
      id="F_86f31461-72e9-4c9a-9f51-8883e97398b7"
      unitRef="U_USD">214000</us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost>
    <us-gaap:DefinedBenefitPlanContributionsByEmployer
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_b1e91c1b-df25-42c6-a659-8025df2429e1"
      unitRef="U_USD">200000</us-gaap:DefinedBenefitPlanContributionsByEmployer>
    <us-gaap:DefinedBenefitPlanContributionsByEmployer
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_bfea7b00-e635-41e7-8eb5-74e8b35f75c5"
      unitRef="U_USD">200000</us-gaap:DefinedBenefitPlanContributionsByEmployer>
    <us-gaap:DefinedBenefitPlanContributionsByEmployer
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-6"
      id="F_973f353a-a100-448e-8c69-804adac75a84"
      unitRef="U_USD">0</us-gaap:DefinedBenefitPlanContributionsByEmployer>
    <us-gaap:DefinedBenefitPlanContributionsByEmployer
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-6"
      id="F_fcc3e687-46f4-402d-8a78-141db0bb30f6"
      unitRef="U_USD">0</us-gaap:DefinedBenefitPlanContributionsByEmployer>
    <us-gaap:PensionContributions
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_ed565d3f-b634-42b6-9065-7e8d9d2dd85b"
      unitRef="U_USD">900000</us-gaap:PensionContributions>
    <us-gaap:DefinedBenefitPensionPlanLiabilitiesNoncurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_392c84db-fde7-4028-83c8-3204b1722559"
      unitRef="U_USD">4000000</us-gaap:DefinedBenefitPensionPlanLiabilitiesNoncurrent>
    <us-gaap:DefinedBenefitPensionPlanLiabilitiesNoncurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-5"
      id="F_c46ca4b8-d48d-4c85-935c-00b68108b355"
      unitRef="U_USD">4100000</us-gaap:DefinedBenefitPensionPlanLiabilitiesNoncurrent>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_19b48b23-3567-4caa-8a86-e49f1695ea4f">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;12.	Income Taxes&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company files income tax returns in various federal, state and local jurisdictions. Tax years from&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;2018&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; forward remain open for examination by Federal authorities. Tax years from &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;2017&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; forward remain open for all significant s&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;tate and foreign authorities.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company accounts for uncertain tax positions pursuant to ASC Topic 740, &#x201c;Income Taxes.&#x201d; As of June 30, 2024 and December 31, 2023, the liability for uncertain tax positions totaled approximately &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, which is included in &#x201c;Other liabilities&#x201d; on the Condensed Consolidated Balance Sheets. The Company recognizes accrued interest related to uncertain tax positions and penalties, if any, in income tax expense within the Condensed Consolidated Statements of Income.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Certain of the Company&#x2019;s undistributed earnings of our foreign subsidiaries are not permanently reinvested. Since foreign earnings have already been subject to United States income tax in 2017 as a result of the 2017 Tax Cuts and Jobs Act, the Company intends to repatriate foreign-held cash as needed. The Company records deferred income tax attributable to foreign withholding taxes that would become payable should it decide to repatriate cash held in our foreign operations. As of June 30, 2024 and December 31, 2023, the Company recorded deferred income taxes of approximately &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively, on the undistributed earnings of its foreign subsidiaries.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Income tax expense was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the three months ended June 30, 2024 and 2023, respectively, and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million for the six months ended June 30, 2024 and 2023, respectively. The effective income tax rate for the three months ended June 30, 2024 was &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; compared with &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; for the three months ended June 30, 2023, and the effective income tax rate for the six months ended June 30, 2024 was &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; compared with &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; for the six months ended June 30, 2023. The effective income tax rates for the three and six months ended June 30, 2024 and 2023&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; differ &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;from the United States federal statutory rate. The Company's effective rate is affected by certain other permanent differences, including state income taxes, non-deductible incentive stock-based compensation and differences in tax rates among jurisdictions in which it&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;operates. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Additionally, the Company received a tax indemnification payment of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, related to a prior year acquisition, in the second quarter of 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Organization for Economic Co-operation and Development/G20 Inclusive Framework on Base Erosion and Profit Shifting published the Pillar Two model rules designed to address the tax challenges arising from the digitalization of the global economy which introduces a &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% global minimum corporate tax for companies with revenues above &#x20ac;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;750&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million calculated on a country-by-country basis. On February 1, 2023, the FASB indicated that it believes the minimum tax imposed under Pillar Two is an alternative minimum tax, and, accordingly, deferred tax assets and liabilities associated with the minimum tax would not be recognized or adjusted for the estimated future effects of the minimum tax but would be recognized in the period incurred. Aspects of Pillar Two legislation have been enacted in certain jurisdictions in which the Company operates effective for accounting periods commencing on or after January 1, 2024. However, based on the current revenue threshold, the Company is currently not subject to Pillar Two taxes.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;  &lt;/span&gt;&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:OpenTaxYear
      contextRef="C_9467c45f-fc2f-4afe-868b-ad7b7b2ce2b0"
      id="F_7514654a-fae4-46fc-94fb-f4d20247062b">2018</us-gaap:OpenTaxYear>
    <us-gaap:OpenTaxYear
      contextRef="C_fcb369e4-0c48-476c-9cba-2ce136c26e27"
      id="F_8acdaa52-bed8-44e8-b1a8-20ab94f5c3df">2017</us-gaap:OpenTaxYear>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_a027feaa-0042-4a36-b4af-5a93a2b3f299"
      unitRef="U_USD">200000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-5"
      id="F_af722172-1091-4ada-b657-b133a413e769"
      unitRef="U_USD">200000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="C_34ed007c-7495-435d-b7f2-fc8513a05fac"
      decimals="-5"
      id="F_dae6e55b-ae10-457c-955a-30d610d3ac17"
      unitRef="U_USD">800000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="C_59fc15eb-e941-4554-83ca-b523abc2fd9b"
      decimals="-5"
      id="F_579f4544-5914-48b9-aa1f-741f68c5a14e"
      unitRef="U_USD">700000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_b9807801-e703-4062-a329-6bcccc5895e6"
      unitRef="U_USD">400000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-5"
      id="F_73ba1ab4-d9ea-4a5d-9c31-a42108848c90"
      unitRef="U_USD">1000000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_7f57d3cb-93e0-44c5-ab73-b0d846132d9f"
      unitRef="U_USD">1100000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-5"
      id="F_68f59917-c803-4daf-a6b6-5b300ad31cb7"
      unitRef="U_USD">1000000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="3"
      id="F_1cf67307-88ed-42ad-afc8-028dfcd34a7f"
      unitRef="U_pure">0.074</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="3"
      id="F_8e56c294-f65f-4f76-84fb-0d33c62d71f8"
      unitRef="U_pure">0.198</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="3"
      id="F_e757bb4f-94f9-4e4e-af3d-3b3bf73ba09f"
      unitRef="U_pure">0.131</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="3"
      id="F_be0a5354-8a11-4a76-be11-5f0dfaf83c70"
      unitRef="U_pure">0.133</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:LessorOperatingLeaseIndemnificationPaymentReceived
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-5"
      id="F_0f06c93e-bcce-41e5-9617-b14efb22df92"
      unitRef="U_USD">500000</us-gaap:LessorOperatingLeaseIndemnificationPaymentReceived>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="2"
      id="F_e0b50fa0-0001-4248-9c15-f4dd3f5dd7fb"
      unitRef="U_pure">0.15</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign>
    <us-gaap:Revenues
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-6"
      id="F_c0773804-2302-49ce-8fab-fe3dcfcbb8b8"
      unitRef="U_EUR">750000000</us-gaap:Revenues>
    <us-gaap:FinancialInstrumentsDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_b1e3f4ba-0027-4bcc-8578-b16f37bf6bd8">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;13.	Financial Instruments&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company's financial instruments consist primarily of investments in cash and cash equivalents, receivables and certain other assets, notes payable, foreign debt and accounts payable, which approximate fair value at June 30, 2024 and December 31, 2023, due to their short-term nature or variable, market-driven interest rates.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The fair value of the debt issued under the Credit Facility and joint venture term loan was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;131.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;138.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million at &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024 and December 31, 2023, respectively. The fair value was determined considering market conditions, the Company's credit worthiness and the current terms of our debt, which is considered Level 2 on the fair value hierarchy.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;At June 30, 2024 and December 31, 2023, the Company had cash and cash equivalents of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;36.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;"&gt;54.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively, of which &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;28.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;38.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively, was held outside of the United States, principally in the Netherlands, India, United Kingdom, and China.&lt;/span&gt;&lt;/p&gt;</us-gaap:FinancialInstrumentsDisclosureTextBlock>
    <us-gaap:DebtInstrumentFairValue
      contextRef="C_18cf0e95-6b2d-4751-a187-2d7efc7ed797"
      decimals="-5"
      id="F_fea0edfc-eb01-445b-b430-65cfdc629b33"
      unitRef="U_USD">131900000</us-gaap:DebtInstrumentFairValue>
    <us-gaap:DebtInstrumentFairValue
      contextRef="C_f0805f92-71a0-4619-afeb-b2020cfd641d"
      decimals="-5"
      id="F_e814b2ba-9a5b-4fbc-bb33-0bb69d56ffea"
      unitRef="U_USD">138600000</us-gaap:DebtInstrumentFairValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-5"
      id="F_16116689-b06d-42b2-bbd0-fd57eac743c2"
      unitRef="U_USD">36500000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-5"
      id="F_9387423c-4e5d-4f7c-82b9-ef7d94739ba4"
      unitRef="U_USD">54800000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <ceco:CashHeldOutsideDomesticTerritory
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_385ba852-be54-458a-88a0-2f0cc0f90fde"
      unitRef="U_USD">28600000</ceco:CashHeldOutsideDomesticTerritory>
    <ceco:CashHeldOutsideDomesticTerritory
      contextRef="C_a9781b31-2217-43c4-a4f9-d607443cce30"
      decimals="-5"
      id="F_d70a07e1-bb86-4379-8d14-94b1206507a6"
      unitRef="U_USD">38500000</ceco:CashHeldOutsideDomesticTerritory>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_cb9c67e4-c08e-49dd-9df0-503654c310d2">&lt;p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;14.	Commitments and Contingencies&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Asbestos cases&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company's subsidiary, Met-Pro Technologies LLC (&#x201c;Met-Pro&#x201d;), beginning in 2002, has been named in asbestos-related lawsuits filed against a large number of industrial companies including, in particular, those in the pump and fluid handling industries. In management&#x2019;s opinion, the complaints typically have been vague, general and speculative, alleging that Met-Pro, along with the numerous other defendants, sold unidentified asbestos-containing products and engaged in other related actions which caused injuries (including death) and loss to the plaintiffs. Counsel has advised that more recent cases typically allege more serious claims of mesothelioma. The Company&#x2019;s insurers have hired attorneys who, together with the Company, are vigorously defending these cases. Many cases have been dismissed after the plaintiff fails to produce evidence of exposure to Met-Pro&#x2019;s products. In those cases, where evidence has been produced, the Company&#x2019;s experience has been that the exposure levels are low and the Company&#x2019;s position has been that its products were not a cause of death, injury or loss. The Company has been dismissed from or settled a large number of these cases. Cumulative settlement payments from 2002 through June 30, 2024 for cases involving asbestos-related claims were &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million which together with all legal fees other than corporate counsel expenses have substantially been paid by the Company&#x2019;s insurers. The average cost per settled claim, excluding legal fees, was approximately &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;33,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;. As of June 30, 2024 and December 31, 2023, the amount recorded within "Accrued expenses" on the Condensed Consolidated Balance Sheets was &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;zero&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, respectively, related to asbestos litigation.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Based upon the most recent information available to the Company regarding such claims, there were a total of 333 cases pending against the Company as of June 30, 2024 with Illinois, New York, Pennsylvania and West Virginia having the largest number of cases, as compared with &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;313&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; cases that were pending as of December 31, 2023. During the six months ended June 30, 2024, 94 new cases were filed against the Company, and the Company was dismissed from 50 cases and settled 24 cases. Most of the pending cases have not advanced beyond the early stages of discovery, although a number of cases are on schedules leading to or scheduled for trial. The Company believes that its insurance coverage is adequate for the cases currently pending against the Company and for the foreseeable future, assuming a continuation of the current volume, nature of cases and settlement amounts. However, the Company has no control over the number and nature of cases that are filed against it, nor as to the financial health of its insurers or their position as to coverage. The Company also presently believes that none of the pending cases will have a material adverse impact upon the Company&#x2019;s results of operations, liquidity or financial condition.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company is also a party to routine contract and employment-related litigation matters, warranty claims and routine audits of state and local tax returns arising in the ordinary course of its business.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The final outcome and impact of open matters, and related claims and investigations that may be brought in the future, are subject to many variables, and cannot be predicted. The Company records accruals for estimated losses relating to claims and lawsuits when available information indicates that a loss is probable and the amount of the loss, or range of loss, can be reasonably estimated. The Company expenses legal costs as they are incurred.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company is&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; not aware of any pending claims or assessments, other than as described above, which may have a material adverse impact on its liquidity, financial position, results of operations, or cash flows.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:LitigationSettlementAmountAwardedFromOtherParty
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-5"
      id="F_1bf06549-2397-4bcd-8a6c-d40e5d9ad9d9"
      unitRef="U_USD">6800000</us-gaap:LitigationSettlementAmountAwardedFromOtherParty>
    <ceco:AverageCostPerSettledClaim
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="0"
      id="F_3c07da0f-74ab-49c2-9e53-5d8b9de2314d"
      unitRef="U_USD">33000</ceco:AverageCostPerSettledClaim>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="C_47e61e04-853f-4bf4-8a81-336c8eae68b9"
      decimals="-5"
      id="F_755abb98-26dd-4e64-9ee9-7479837270b6"
      unitRef="U_USD">200000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="C_349b57fb-22fc-4ee6-be90-faafd6702fe2"
      decimals="-6"
      id="F_bc2a60a9-c619-4279-9497-22644e8f089f"
      unitRef="U_USD">0</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:LossContingencyPendingClaimsNumber
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="0"
      id="F_fe3c184d-3496-4345-a634-a640a5c41965"
      unitRef="U_Case">313</us-gaap:LossContingencyPendingClaimsNumber>
    <us-gaap:LossContingencyManagementsAssessmentAndProcess
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_30c85996-3243-4377-bef4-a73646370964"> not aware of any pending claims or assessments, other than as described above, which may have a material adverse impact on its liquidity, financial position, results of operations, or cash flows.</us-gaap:LossContingencyManagementsAssessmentAndProcess>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_a125ddd7-5962-46d7-be8f-32c93ac6db77">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;15.      Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Kemco Systems Co., LLC&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;On August 23, 2023, the Company acquired &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;100&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% of the equity interests of Kemco for $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;24.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in cash, which was financed with a draw on the Company&#x2019;s revolving credit facility. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;During the three months ended March 31, 2024, the Company received $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million from the former owners of Kemco as a working capital adjustment, reducing the purchase price to $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;23.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;As additional consideration, the former owners of Kemco are entitled to earnout payments up to $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million based upon specified financial results through August 31, 2026, of which $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million was paid during the second quarter of 2024. Based on projections at the acquisition date, the Company estimated the fair value of the earnout to be $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, which was subsequently adjusted to $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in the first quarter of 2024. This fair value measurement is based on inputs not observable in the market, which is considered Level 3 on the fair value hierarchy. As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;June 30, 2024, the earnout liability recorded in &#x201c;Accrued expenses&#x201d; on the Condensed Consolidated Balance Sheets is &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million. Kemco designs and manufactures energy and water conservation systems and equipment for applications regarding wastewater reuse and recycle, heat recovery, water heating, and vapor energy. This acquisition advances the Company's position within the North American water and wastewater treatment market within the Engineered Systems segment. &lt;/span&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:80.236%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.94%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.823%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current assets (including accounts receivable of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,328&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,902&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;341&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Right-of-use assets from operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,602&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible - finite life&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11,610&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11,115&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Other assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;33,586&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current liabilities assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,853&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Other liabilities assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;404&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,329&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company acquired technology, customer lists and tradename intangible assets valued at $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively. These assets were determined to have useful lives of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; years, respectively.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Transcend Solutions&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;On March 31, 2023, the Company acquired &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;100&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% of the equity interests of Transcend Solutions, LLC ("Transcend") for&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;22.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, including $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;20.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in cash, which was financed with a draw on the Company&#x2019;s revolving credit facility, $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million of deferred cash consideration, consisting of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million of holdback paid within one year and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million of notes payable due in equal installments over two years, of which $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million was paid during the first quarter of 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;. Transcend is a process filtration solution design and manufacturing company with applications in hydrocarbon and chemical processing. This acquisition improves the Company's short-cycle and long-cycle mix and expands the Company's reach into midstream oil and gas, liquified natural gas, hydrocarbon processing, and chemical processing applications within the Engineered Systems segment. &lt;/span&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:80.236%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.94%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.823%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current assets (including cash of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;52&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;and accounts receivable of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,493&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,614&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,153&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible - finite life&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,930&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,839&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Other assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;231&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;23,767&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current liabilities assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,203&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Deferred tax liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;168&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;22,396&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company acquired technology, customer lists and tradename intangible assets valued at $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively. These assets were determined to have useful lives of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;10 &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;10 &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;years, respectively.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Malvar Engineering Limited&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;On January 10, 2023, the Company acquired &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;100&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;% of the equity interests of Malvar Engineering Limited, including its subsidiaries Arkanum Management Limited and Wakefield Acoustics Limited (collectively, "Wakefield"), for&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million in cash, which was financed with a draw on the Company&#x2019;s revolving credit facility, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million of deferred cash consideration&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;. As additional consideration, the former owners are entitled to earn-out payments based upon specified financial results through July 31, 2023. Based on projections at the acquisition date, the Company estimated the fair value of the earn-out to be $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million. A payment of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, representing the fully earned amount, was made in the fourth quarter of 2023. Wakefield is a &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;producer of industrial engineered noise control solutions, including custom acoustical gen-set packages, ambient air baffles, acoustical louvres, and skid enclosures, primarily serving server farms for data centers, standby and emergency power generation, oil and gas, petrochemical, commercial construction, infrastructure, and general manufacturing industries. This acquisition advances the Company's position within the industrial silencing and noise attenuation market by adding a range of solutions and access to new geographic markets within the Engineered Systems segment. &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:80.236%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.94%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.823%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current assets (including accounts receivable of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,467&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,240&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible - finite life&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,778&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,296&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,949&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current liabilities assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,860&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Deferred income tax liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;961&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,128&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company acquired customer lists and tradename intangible assets valued at $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million, respectively. These assets were determined to have useful lives of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;10 years&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company has finalized the valuation of assets acquired and liabilities assumed related to the acquisition of Wakefield and Transcend. The purchase accounting related to the Kemco acquisition is subject to final adjustment, primarily for the valuation of intangible assets pending final valuation results for such assets and tax balances for the further assessment of the acquiree&#x2019;s tax positions. These preliminary estimates and assumptions could change significantly during the purchase price measurement period as the Company finalizes the valuation of assets acquired and liabilities assumed. These changes could result in material variances in the Company's future financial results, including variances in the estimated purchase price, fair values recorded and expenses associated with these items.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Goodwill recognized represents value the Company expects to be created by combining the various operations of the acquired businesses with the Company&#x2019;s operations, including the expansion into markets within existing business segments, access to new customers and potential cost savings and synergies. Goodwill related to this acquisition is not deductible for tax purposes.&lt;br/&gt;&lt;br/&gt;Acquisition and integration expenses on the Condensed Consolidated Statements of Income are related to acquisition activities, which include retention, legal, accounting, banking, and other expenses.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The following unaudited pro forma financial information represents the Company&#x2019;s results of operations as if these acquisitions had occurred at the beginning of the fiscal year prior to the acquisition:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:51.31%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.582%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:6.281000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.582%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:6.281000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands, except per share data)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;137,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;135,260&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;263,854&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;257,455&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net income attributable to CECO Environmental Corp.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,485&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,292&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,993&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,019&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Earnings per share:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.13&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.12&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.17&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.20&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.12&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.12&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.17&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.20&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The pro forma results have been prepared for informational purposes only and include adjustments to amortize acquired intangible assets with finite life, reflect additional interest expense on debt used to fund the acquisition, and to record the income tax consequences of the pro forma adjustments. These pro forma results do not purport to be indicative of the results of operations that would have occurred had the purchase been made as of the beginning of the periods presented or of the results of operations that may occur in the future.&lt;/span&gt;&lt;/p&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="2"
      id="F_63afbf7c-ec85-452d-9b32-ec34b90ba304"
      unitRef="U_pure">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-5"
      id="F_c9941a6f-5dea-4ac0-bed1-6c5e177895d4"
      unitRef="U_USD">24000000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <ceco:CompanyReceivedWorkingCapital
      contextRef="C_8117e764-0bc9-442b-8801-54318fd523c2"
      decimals="-5"
      id="F_120c5dfe-d91e-4086-9f2d-f534d57a2b6c"
      unitRef="U_USD">400000</ceco:CompanyReceivedWorkingCapital>
    <ceco:PurchasePrice
      contextRef="C_8117e764-0bc9-442b-8801-54318fd523c2"
      decimals="-5"
      id="F_d17e38b7-e65e-4732-b341-9544ba2ceb25"
      unitRef="U_USD">23600000</ceco:PurchasePrice>
    <ceco:AdditionalConsideration
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-5"
      id="F_ed9ba7de-833a-4361-aab7-90f6a4e0fe3e"
      unitRef="U_USD">4000000</ceco:AdditionalConsideration>
    <ceco:InstallmentsPaid
      contextRef="C_0c5f4bc0-2224-4e45-bf01-f8c41f9559f3"
      decimals="-5"
      id="F_2997aea5-ae68-4137-a2f1-0ae779b4a27e"
      unitRef="U_USD">1700000</ceco:InstallmentsPaid>
    <ceco:EarnOutFairValue
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-5"
      id="F_a1478baf-a284-49c5-b060-c11359729900"
      unitRef="U_USD">2200000</ceco:EarnOutFairValue>
    <ceco:EarnOutFairValue
      contextRef="C_7b0ccbd8-cde1-4fa0-92b8-fbefef7f7aea"
      decimals="-5"
      id="F_2ee67f91-f962-4207-a3ac-56d01295007b"
      unitRef="U_USD">2700000</ceco:EarnOutFairValue>
    <us-gaap:AccountsPayableAndOtherAccruedLiabilities
      contextRef="C_3bd221d6-a123-44dd-acb2-9e1b69f0c61a"
      decimals="-5"
      id="F_8859502e-c1b5-45d9-87b2-d9e610e99a60"
      unitRef="U_USD">1100000</us-gaap:AccountsPayableAndOtherAccruedLiabilities>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="C_8117e764-0bc9-442b-8801-54318fd523c2"
      id="F_d0712e12-5d99-41b8-9241-41c1c952f266">&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.&lt;/span&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:80.236%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.94%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.823%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current assets (including accounts receivable of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,328&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,902&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;341&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Right-of-use assets from operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,602&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible - finite life&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11,610&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;11,115&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Other assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;33,586&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current liabilities assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,853&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Other liabilities assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;404&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,329&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_0c5f4bc0-2224-4e45-bf01-f8c41f9559f3"
      decimals="-3"
      id="F_fc7316aa-e1ae-43ba-bc4f-fb3fe1a679ab"
      unitRef="U_USD">2328000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_bc8acfd0-bdf4-424a-8581-46369c3a0864"
      unitRef="U_USD">8902000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_e4840cd0-90a3-461d-ae4b-7088caa2f414"
      unitRef="U_USD">341000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_646c7891-3be6-44f4-9595-99c91333a441"
      unitRef="U_USD">1602000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_25ed1c44-0cd2-4267-b458-8b709775e592"
      unitRef="U_USD">11610000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:Goodwill
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_04db3118-185c-4a1f-8a97-8c8b86f0a390"
      unitRef="U_USD">11115000</us-gaap:Goodwill>
    <us-gaap:OtherAssets
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_15a66c8d-d4f9-467c-88a1-92eaf49428f0"
      unitRef="U_USD">16000</us-gaap:OtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_80afcf72-e21e-40bc-91a5-28ad5545a634"
      unitRef="U_USD">33586000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_8bf71ff5-bc0e-4554-8d7e-ab83c7803c82"
      unitRef="U_USD">6853000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther>
    <us-gaap:OtherLiabilities
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_3cb6228e-1c89-44bf-b150-5787c731496f"
      unitRef="U_USD">404000</us-gaap:OtherLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="C_4589bd88-a00e-4db0-96ae-ae6be744a07c"
      decimals="-3"
      id="F_f4055d90-7303-4571-b092-f125eee89544"
      unitRef="U_USD">26329000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets
      contextRef="C_6d00beba-a242-44bc-956e-811c4160406d"
      decimals="-5"
      id="F_9353d2bb-f43f-48d8-adbe-c24b02514755"
      unitRef="U_USD">1400000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets
      contextRef="C_04e1df3f-6f01-4fd1-8499-60824c9e78f9"
      decimals="-5"
      id="F_124fd257-d374-4262-8f06-61f4e2b7ea78"
      unitRef="U_USD">8700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets
      contextRef="C_efd90330-7aea-48a1-90ef-4f616e315186"
      decimals="-5"
      id="F_a829a37d-1bf1-4351-b4fa-ee8e63a49402"
      unitRef="U_USD">1500000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_6d00beba-a242-44bc-956e-811c4160406d"
      id="F_36817cad-28bc-454e-bf1b-c788c73ea439">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_04e1df3f-6f01-4fd1-8499-60824c9e78f9"
      id="F_e1f16e25-ccaa-44ed-bad6-c2e6343e48e4">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_efd90330-7aea-48a1-90ef-4f616e315186"
      id="F_ebdc2bbd-4795-4e0d-8044-43e28f8e09e1">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="2"
      id="F_10108b01-b424-485c-9a57-9c1499ed5104"
      unitRef="U_pure">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-5"
      id="F_d15e6c75-74e4-4fe1-8323-efe59ea5b9d8"
      unitRef="U_USD">22400000</us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-5"
      id="F_c406b64d-f30b-4361-ad77-bbeb10f77c8c"
      unitRef="U_USD">20000000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent
      contextRef="C_36a6fe56-8876-42bb-b152-b02a8bbe12b2"
      decimals="-5"
      id="F_4b3971c9-9648-447d-8973-db0461a7bc9e"
      unitRef="U_USD">2400000</us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent>
    <ceco:HoldbackPayble
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-5"
      id="F_c469833e-d42a-4be8-8c66-b1de5b4717e2"
      unitRef="U_USD">400000</ceco:HoldbackPayble>
    <us-gaap:NotesPayable
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-5"
      id="F_35aebe89-5345-4cac-990c-3041104a155e"
      unitRef="U_USD">2000000</us-gaap:NotesPayable>
    <ceco:InstallmentsPaid
      contextRef="C_c9b6c865-2af7-4b96-954f-843e672b4973"
      decimals="-5"
      id="F_8c146630-5ae1-48f9-87c4-1bde82a03a1d"
      unitRef="U_USD">1000000</ceco:InstallmentsPaid>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="C_b45e663b-5908-4c71-8f23-b4f823f678b5"
      id="F_af94e582-7519-449c-b9ed-e75d095141f5">&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.&lt;/span&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:80.236%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.94%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.823%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current assets (including cash of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;52&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#160;and accounts receivable of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,493&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,614&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,153&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible - finite life&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,930&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,839&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Other assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;231&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;23,767&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current liabilities assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,203&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Deferred tax liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;168&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;22,396&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_78835a2c-56c9-4774-bd13-bf868b4261fe"
      unitRef="U_USD">52000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_fbbc29e7-481e-4873-b4c6-62374fa0621e"
      decimals="-3"
      id="F_4c625488-38d1-4265-ae39-e1fb513d69d7"
      unitRef="U_USD">1493000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_3b20613a-16b5-46cb-850f-f1b21bec396e"
      unitRef="U_USD">2614000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_d25aa6b9-e03f-4973-ace2-8364c8b20f66"
      unitRef="U_USD">1153000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_d0332b6f-706a-482e-be01-15921bc1de40"
      unitRef="U_USD">8930000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:Goodwill
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_36779e26-058e-4207-b902-540c20dea57f"
      unitRef="U_USD">10839000</us-gaap:Goodwill>
    <us-gaap:OtherAssets
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_84ef0f5d-d45e-404b-9341-6938aae5f275"
      unitRef="U_USD">231000</us-gaap:OtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_78a54d6c-9ecc-491c-833c-7bf6c8fd2e47"
      unitRef="U_USD">23767000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_df17fe7d-612d-4789-942e-b412afaaa792"
      unitRef="U_USD">1203000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_56dafc84-7f43-4f25-a776-d6b25b58fe2a"
      unitRef="U_USD">168000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="C_748ede76-abb6-4caf-b618-37efdfaf1d0c"
      decimals="-3"
      id="F_ecd35aaa-0534-4f46-805a-33601560f67e"
      unitRef="U_USD">22396000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="C_b4a042be-ed48-4247-a787-2fe0805c0213"
      decimals="-5"
      id="F_abb553f3-e7df-4853-9600-35ee019585df"
      unitRef="U_USD">600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="C_9304e9b2-9d3f-4661-b790-466476e30580"
      decimals="-5"
      id="F_eb183949-0e3e-4d8a-9eba-12646fb0a1ec"
      unitRef="U_USD">7600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="C_7a1d8950-613b-4ba6-948e-7235f2ca2bf7"
      decimals="-5"
      id="F_2db5a05c-35d8-4f7d-b210-5856cc49d6e3"
      unitRef="U_USD">700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_b4a042be-ed48-4247-a787-2fe0805c0213"
      id="F_73095e7d-6641-435d-8bb4-42a30f2408c9">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_9304e9b2-9d3f-4661-b790-466476e30580"
      id="F_ccc909be-c7ad-476c-8d81-532bd49c6fe0">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_7a1d8950-613b-4ba6-948e-7235f2ca2bf7"
      id="F_8388f421-f6a3-4e87-8658-397d8bfbb580">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="2"
      id="F_660783b2-77d2-44cb-8e08-4da955f90ce7"
      unitRef="U_pure">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-5"
      id="F_b771fa29-9bf7-4315-bbfe-4901429769f2"
      unitRef="U_USD">4100000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-5"
      id="F_31179744-4e04-4829-bb63-c1bd990c0cfa"
      unitRef="U_USD">400000</us-gaap:DeferredCompensationCashBasedArrangementsLiabilityCurrent>
    <ceco:EarnOutFairValue
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-5"
      id="F_4818fff3-72e1-4b24-a75c-5d0402a8b9f1"
      unitRef="U_USD">600000</ceco:EarnOutFairValue>
    <us-gaap:AccountsPayableAndOtherAccruedLiabilities
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-5"
      id="F_5e875926-4e42-4dc2-b2ef-a36e49f52fbd"
      unitRef="U_USD">600000</us-gaap:AccountsPayableAndOtherAccruedLiabilities>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="C_7923e4da-ce3a-46c9-be51-caf27afc8ef9"
      id="F_c8e7c8db-3a15-4b46-aa9c-51dc87b6e666">&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The following table summarizes the fair values of the assets acquired and liabilities assumed at the date of closing.&lt;/span&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:80.236%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.94%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:15.823%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current assets (including accounts receivable of $&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,467&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,240&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Property and equipment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Intangible - finite life&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,778&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,296&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,949&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Current liabilities assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,860&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Deferred income tax liability&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;961&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net assets acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,128&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="C_55bf135b-9f96-4b77-9981-d927010c0d49"
      decimals="-3"
      id="F_e3b9ebd1-efda-4476-a0f7-5bb43006b3a6"
      unitRef="U_USD">2467000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-3"
      id="F_997a7b96-c148-44b1-959f-b6efda7b3e88"
      unitRef="U_USD">3240000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-3"
      id="F_b981f80d-58d8-40fe-8e87-0cac9e11e445"
      unitRef="U_USD">635000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-3"
      id="F_ca20c0f8-c2c7-4bd2-8d0b-dd6ce22f706d"
      unitRef="U_USD">1778000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:Goodwill
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-3"
      id="F_e9153a40-2baf-4322-8fbc-291c52d2b2be"
      unitRef="U_USD">5296000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-3"
      id="F_b9e137a7-2649-4677-81b3-498c7dcfc708"
      unitRef="U_USD">10949000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-3"
      id="F_8c4364ee-efc5-42a3-b000-30647058ef97"
      unitRef="U_USD">4860000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-3"
      id="F_f8570093-dc60-458a-9bf0-0374695d7cda"
      unitRef="U_USD">961000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="C_54b69460-da7c-47f2-a7c1-7ea53f84cddf"
      decimals="-3"
      id="F_263311ef-3d81-40c0-9e3c-0ebd1e74f667"
      unitRef="U_USD">5128000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets
      contextRef="C_6f9a237d-a361-46b0-8346-bf1f6627c4b9"
      decimals="-5"
      id="F_f560fdb2-f2a4-4ffd-a43f-a91656b911fa"
      unitRef="U_USD">1500000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets
      contextRef="C_dbb189c9-894e-4b47-afa3-89cb992725cf"
      decimals="-5"
      id="F_7459ca28-1546-483d-aeb0-d80c698e6e4c"
      unitRef="U_USD">300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_cf575e81-89c7-41df-994e-ef0940b46d64"
      id="F_459d25c7-2205-46b6-a636-8e5b7678455c">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:BusinessAcquisitionProFormaInformationTextBlock
      contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd"
      id="F_73d6e61f-938c-4bdc-a2ef-ec51f514e7a9">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The following unaudited pro forma financial information represents the Company&#x2019;s results of operations as if these acquisitions had occurred at the beginning of the fiscal year prior to the acquisition:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:51.31%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.582%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:6.281000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:11.582%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.24%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:6.281000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands, except per share data)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;137,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;135,260&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;263,854&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;257,455&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Net income attributable to CECO Environmental Corp.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,485&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,292&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,993&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,019&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Earnings per share:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.13&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.12&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.17&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.20&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:20pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:20pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.12&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.12&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.17&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;0.20&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
    <us-gaap:GainLossOnSalesOfLoansNet
      contextRef="C_3a0b3e75-3056-44a8-8753-0879f494583f"
      decimals="-3"
      id="F_c000863a-5fef-44ac-bd9d-32c8ebbd1128"
      unitRef="U_USD">137522000</us-gaap:GainLossOnSalesOfLoansNet>
    <us-gaap:GainLossOnSalesOfLoansNet
      contextRef="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93"
      decimals="-3"
      id="F_f6fc1244-5735-439e-a086-5a16aad4fa4a"
      unitRef="U_USD">135260000</us-gaap:GainLossOnSalesOfLoansNet>
    <us-gaap:GainLossOnSalesOfLoansNet
      contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd"
      decimals="-3"
      id="F_ee92cfcf-5a1e-460d-a12d-7e4c5b90413d"
      unitRef="U_USD">263854000</us-gaap:GainLossOnSalesOfLoansNet>
    <us-gaap:GainLossOnSalesOfLoansNet
      contextRef="C_c42650fa-1a6c-4d61-b129-00391b2c2104"
      decimals="-3"
      id="F_71a6eb7e-e19a-424e-adf2-85ec1c90d9b3"
      unitRef="U_USD">257455000</us-gaap:GainLossOnSalesOfLoansNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="C_3a0b3e75-3056-44a8-8753-0879f494583f"
      decimals="-3"
      id="F_c6aa5725-52d2-401e-95ab-54218fc9d988"
      unitRef="U_USD">4485000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93"
      decimals="-3"
      id="F_1f0cd971-a587-4431-9b6b-a63f374ca4ea"
      unitRef="U_USD">4292000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd"
      decimals="-3"
      id="F_681f61e1-96a8-40d5-b05f-d7ee41bd50d7"
      unitRef="U_USD">5993000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:InterestIncomeExpenseNet
      contextRef="C_c42650fa-1a6c-4d61-b129-00391b2c2104"
      decimals="-3"
      id="F_0cc01dac-6daf-4202-b919-a005a69eba87"
      unitRef="U_USD">7019000</us-gaap:InterestIncomeExpenseNet>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="C_3a0b3e75-3056-44a8-8753-0879f494583f"
      decimals="2"
      id="F_918f3145-2bb2-4b27-ba9a-b5e3545adee4"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.13</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93"
      decimals="2"
      id="F_e0c0641d-97a1-4a11-816c-ab8746669635"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.12</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd"
      decimals="2"
      id="F_ce1702f4-3142-4bfa-9b63-62baf160f7f6"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.17</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="C_c42650fa-1a6c-4d61-b129-00391b2c2104"
      decimals="2"
      id="F_2b14fceb-8851-4acf-82cd-0e31e4adc98d"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.2</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="C_3a0b3e75-3056-44a8-8753-0879f494583f"
      decimals="2"
      id="F_6bd6c266-0557-49bc-914e-77ef878fc3fc"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.12</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="C_120bc9de-c1ef-4dfc-bde0-37bc5c636a93"
      decimals="2"
      id="F_6ce8a3a3-0bae-4ade-8b14-c586af3b7613"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.12</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="C_9f15121a-558b-4efd-9402-5a11935625fd"
      decimals="2"
      id="F_77d4f0f7-58a8-40ca-88df-2711e35258e4"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.17</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="C_c42650fa-1a6c-4d61-b129-00391b2c2104"
      decimals="2"
      id="F_c051e472-9d76-4a05-a478-e3aa5324a6a2"
      unitRef="U_UnitedStatesOfAmericaDollarsShare">0.2</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_ee54dd84-c414-4c3d-923c-9348bc54e247">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;16.	Business Segment Information&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company&#x2019;s operations are organized and reviewed by management along with its solutions or end markets that the segment serves and presented in two reportable segments. The results of the segments are reviewed through the &#x201c;Income from operations&#x201d; line on the Condensed Consolidated Statements of Income&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company&#x2019;s reportable segments are organized as groups of similar products and services, as described as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Engineered Systems segment:&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; The Engineered Systems segment serves the power generation, hydrocarbon processing, water/wastewater treatment, oily water separation and treatment, marine and naval vessels, and midstream oil and gas sectors. The Company seeks to address the global demand for environmental and equipment protection solutions with its highly engineered platforms including emissions management, fluid bed cyclones, thermal acoustics, separation and filtration, and dampers and expansion joints.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;Industrial Process Solutions segment:&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; The Industrial Process Solutions segment serves the broad industrial sector with solutions for air pollution and contamination control, fluid handling, and process filtration in applications such as aluminum beverage can production, automobile production, food and beverage processing, semiconductor fabrication, electronics production, steel and aluminum mill processing, wood manufacturing, desalination, and aquaculture markets. The Company assists customers in maintaining clean and safe operations for employees, reducing energy consumption, minimizing waste for customers, and meeting regulatory standards for toxic emissions, fumes, volatile organic compounds and odor elimination through its platforms including duct fabrication and installation, industrial air, and fluid handling.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The financial segment information is as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales (less intra-, inter-segment sales)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;97,392&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;87,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;186,741&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;161,977&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;40,130&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;41,659&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;77,113&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;79,767&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;137,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;129,181&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;263,854&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;241,744&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Income from operations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19,330&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,089&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;35,607&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;23,894&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,669&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,586&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12,769&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Corporate and Other&lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,072&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;31,433&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19,961&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total income from operations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,603&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,943&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,064&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;div class="item-list-element-wrapper" style="display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:6pt;min-width:6.667%;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:6.667%;display:inline-flex;justify-content:flex-start;"&gt;(1)&lt;/span&gt;&lt;div style="width:100%;display:inline;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"&gt;Includes corporate compensation, professional services, information technology, and other general and administrative corporate expenses.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&#160;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Property and equipment additions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;890&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;444&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;688&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;429&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;312&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,035&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,711&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Corporate and Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,804&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,406&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,171&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,520&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total property and equipment additions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,123&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,162&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,233&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,919&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Depreciation and amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,814&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,274&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,599&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,486&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;949&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,250&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,107&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Corporate and Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;516&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;542&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,057&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total depreciation and amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,461&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,765&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,973&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Identifiable assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;427,732&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;432,098&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;144,132&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;147,740&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Corporate and Other&lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;"&gt;(2)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,269&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;20,453&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total identifiable assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;598,133&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;600,291&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;div class="item-list-element-wrapper" style="display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:6pt;min-width:6.667%;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:6.667%;display:inline-flex;justify-content:flex-start;"&gt;(2)&lt;/span&gt;&lt;div style="width:100%;display:inline;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"&gt;Corporate and Other assets consist primarily of cash and income tax related assets.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&#160;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;142,058&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;142,229&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;69,086&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;69,097&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;Intra-segment and Inter-segment Revenues&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company has multiple divisions that sell to each other within segments (intra-segment sales) and between segments (inter-segment sales), as follows:&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;  &lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:42.3%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Less Inter-Segment Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Total&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Intra-&lt;br/&gt;Segment&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Industrial Process Solutions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Engineered Systems&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Sales&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;to&lt;br/&gt;Outside&lt;br/&gt;Customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;102,141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,553&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;196&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;97,392&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;44,673&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,440&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;103&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;40,130&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;146,814&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,993&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;196&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;103&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;137,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:42.357%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.443%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.523%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.523%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.523%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.523%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Less Inter-Segment Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Total&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Intra-&lt;br/&gt;Segment&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Industrial Process Solutions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Engineered Systems&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Sales&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;to&lt;br/&gt;Outside&lt;br/&gt;Customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;95,880&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,995&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;363&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;87,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;44,641&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,806&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;41,659&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;140,521&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,801&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;363&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;129,181&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:42.297%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.583%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.503%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.503%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.503%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.503%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Less Inter-Segment Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Total&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Intra-&lt;br/&gt;Segment&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Industrial Process Solutions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Engineered Systems&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Sales&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;to&lt;br/&gt;Outside&lt;br/&gt;Customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;194,659&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;283&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;186,741&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;84,252&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,975&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;77,113&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;278,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,610&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;283&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;263,854&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:42.3%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Less Inter-Segment Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Total&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Intra-&lt;br/&gt;Segment&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Industrial Process Solutions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Engineered Systems&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Sales&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;to&lt;br/&gt;Outside&lt;br/&gt;Customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;171,970&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,533&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;460&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;161,977&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;83,682&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,641&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;274&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;79,767&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;255,652&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13,174&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;460&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;274&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;241,744&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_bf288a9a-512f-4a7d-8ce0-2b14beb8697d">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The financial segment information is as follows:&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales (less intra-, inter-segment sales)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;97,392&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;87,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;186,741&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;161,977&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;40,130&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;41,659&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;77,113&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;79,767&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;137,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;129,181&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;263,854&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;241,744&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Income from operations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19,330&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,089&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;35,607&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;23,894&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,669&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,586&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;12,769&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Corporate and Other&lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;"&gt;(1)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;15,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,072&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;31,433&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;19,961&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total income from operations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,603&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;16,943&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,064&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"&gt;Includes corporate compensation, professional services, information technology, and other general and administrative corporate expenses.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b"
      decimals="-3"
      id="F_46b8c289-28c3-4c50-97ef-27e33f092b1e"
      unitRef="U_USD">97392000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa"
      decimals="-3"
      id="F_27c9a214-f0b7-4fc9-aa42-ba641d7fc908"
      unitRef="U_USD">87522000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827"
      decimals="-3"
      id="F_1f2e34cc-efb6-444a-a184-367fd6e25194"
      unitRef="U_USD">186741000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8"
      decimals="-3"
      id="F_f43e6eba-b717-46c0-a29c-f49324f7e1cf"
      unitRef="U_USD">161977000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613"
      decimals="-3"
      id="F_edccd506-e4e0-4dbb-8163-4715e46185f4"
      unitRef="U_USD">40130000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7"
      decimals="-3"
      id="F_0466a81f-f9ba-432c-b336-920cf87dc28b"
      unitRef="U_USD">41659000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc"
      decimals="-3"
      id="F_3b50cc17-5627-48bc-8928-fea1fcc1edbe"
      unitRef="U_USD">77113000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30"
      decimals="-3"
      id="F_c80076dd-83c7-4fb9-ba50-71549ea4e63f"
      unitRef="U_USD">79767000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_544c6247-78b0-46dd-a47b-ba20b4b21fa5"
      unitRef="U_USD">137522000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_9dcaa3ad-185f-42f9-9869-60253a9be151"
      unitRef="U_USD">129181000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_032702f7-48b7-47ec-93f6-8c459e1cb577"
      unitRef="U_USD">263854000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_e43be11c-6b6e-4930-87ae-aab2162c5cb7"
      unitRef="U_USD">241744000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b"
      decimals="-3"
      id="F_4a46efca-9700-4b8f-9e2e-957907c11887"
      unitRef="U_USD">19330000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa"
      decimals="-3"
      id="F_57b0eeab-a831-4c33-b3b1-5f74491095a4"
      unitRef="U_USD">14089000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827"
      decimals="-3"
      id="F_9e2369a7-e477-468a-a142-f10be2faaa83"
      unitRef="U_USD">35607000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8"
      decimals="-3"
      id="F_748135cd-9d9a-4ab8-a789-c2fd834eb184"
      unitRef="U_USD">23894000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613"
      decimals="-3"
      id="F_10c4a87d-f7e6-4fbc-a889-e964b9f3b760"
      unitRef="U_USD">5669000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7"
      decimals="-3"
      id="F_d886f5f8-b244-4cdd-b20f-39fcbfbb09cf"
      unitRef="U_USD">4586000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc"
      decimals="-3"
      id="F_9641eb9f-7098-4345-bda7-0e272dc7bc5c"
      unitRef="U_USD">12769000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30"
      decimals="-3"
      id="F_4e81251a-8168-4e85-8899-3a531dac27c5"
      unitRef="U_USD">10131000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_30f7d23d-19da-4369-8fc4-1d3abf482698"
      decimals="-3"
      id="F_b9e42d51-618f-4c90-af04-7ca329cb7e37"
      unitRef="U_USD">-15742000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_b786997d-9425-44b4-b5b5-81b33cb5743d"
      decimals="-3"
      id="F_0dcfd763-2b6c-4c77-9593-b08dcb03388a"
      unitRef="U_USD">-10072000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_20af154e-2934-460e-b32a-3e33fd38f050"
      decimals="-3"
      id="F_eea7a299-fd04-4634-b913-ff7e3c99ad2a"
      unitRef="U_USD">-31433000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_52a7de7a-6f99-4e7a-8171-3348d1ebab1e"
      decimals="-3"
      id="F_fc374583-e93b-4abb-8327-56fdf907a643"
      unitRef="U_USD">-19961000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_3f3ea004-4175-4bb7-8413-42dadb439a05"
      unitRef="U_USD">9257000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_493890f6-716a-440a-9089-199104abb4be"
      unitRef="U_USD">8603000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_072ca6ed-8f70-493a-9643-7913d8c9d1bd"
      unitRef="U_USD">16943000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_c1ed3a33-9389-4ed8-967f-f3068fde7335"
      unitRef="U_USD">14064000</us-gaap:OperatingIncomeLoss>
    <us-gaap:ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_25436a8a-67a8-4144-97bc-a5d328e5afc3">
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Property and equipment additions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;890&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;444&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;688&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;429&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;312&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,035&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,711&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Corporate and Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,804&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,406&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,171&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,520&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total property and equipment additions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,123&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,162&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,233&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,919&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:46.4%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.12%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:10.280000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Depreciation and amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,814&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,274&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,599&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,486&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;949&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,250&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,107&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Corporate and Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;516&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;542&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;1,057&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total depreciation and amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,461&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,765&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,973&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;5,650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Identifiable assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;427,732&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;432,098&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;144,132&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;147,740&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Corporate and Other&lt;/span&gt;&lt;span style="color:#000000;top:-4.6899999999999995pt;white-space:pre-wrap;font-size:6.7pt;position:relative;min-width:fit-content;"&gt;(2)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;26,269&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;20,453&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total identifiable assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;598,133&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;600,291&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;div class="item-list-element-wrapper" style="display:flex;margin-top:3pt;justify-content:flex-start;align-items:baseline;margin-bottom:6pt;min-width:6.667%;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:6.667%;display:inline-flex;justify-content:flex-start;"&gt;(2)&lt;/span&gt;&lt;div style="width:100%;display:inline;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;"&gt;Corporate and Other assets consist primarily of cash and income tax related assets.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ReconciliationOfOtherSignificantReconcilingItemsFromSegmentsToConsolidatedTextBlock>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b"
      decimals="-3"
      id="F_c93709f8-ba74-4fb2-8267-5f3245ba5889"
      unitRef="U_USD">890000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa"
      decimals="-3"
      id="F_fffb597b-144b-4d8c-bc1f-77ccf85fabf5"
      unitRef="U_USD">444000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827"
      decimals="-3"
      id="F_e11e5fa6-da59-42af-976d-4331b1419304"
      unitRef="U_USD">2027000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8"
      decimals="-3"
      id="F_1f77f54e-976b-4774-9e0a-512f8a4e29a5"
      unitRef="U_USD">688000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613"
      decimals="-3"
      id="F_dcd18412-5f28-48a3-be33-28f6293c0e61"
      unitRef="U_USD">429000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7"
      decimals="-3"
      id="F_ff0017da-ab69-461c-9464-fb5f48b92693"
      unitRef="U_USD">312000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc"
      decimals="-3"
      id="F_4be3d5f4-4ad9-487e-be3d-481aacf8cc52"
      unitRef="U_USD">1035000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30"
      decimals="-3"
      id="F_6fc21c62-e8b3-43fc-a87e-a6a01c000b61"
      unitRef="U_USD">1711000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_30f7d23d-19da-4369-8fc4-1d3abf482698"
      decimals="-3"
      id="F_4a66f990-1789-49f2-87a1-4d5f31add399"
      unitRef="U_USD">2804000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_b786997d-9425-44b4-b5b5-81b33cb5743d"
      decimals="-3"
      id="F_e58b0a66-cfce-42ca-b693-d74ef61709f3"
      unitRef="U_USD">1406000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_20af154e-2934-460e-b32a-3e33fd38f050"
      decimals="-3"
      id="F_cd43c30a-1e20-4793-8440-68d2173e38a0"
      unitRef="U_USD">4171000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_52a7de7a-6f99-4e7a-8171-3348d1ebab1e"
      decimals="-3"
      id="F_6404d9b3-a67a-4104-96e4-e06aed03aa93"
      unitRef="U_USD">1520000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_47b476a1-2669-4fb3-8a5b-30d067181d96"
      unitRef="U_USD">4123000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_e941bfea-58c8-416c-8bbb-f380f3cdae21"
      unitRef="U_USD">2162000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_bfc67288-5280-467f-b32d-4c92bf4e95e8"
      unitRef="U_USD">7233000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:SegmentExpenditureAdditionToLongLivedAssets
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_9bde2157-730c-48a3-9246-6c7651c0c912"
      unitRef="U_USD">3919000</us-gaap:SegmentExpenditureAdditionToLongLivedAssets>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b"
      decimals="-3"
      id="F_f4c67296-1c1a-4115-aa24-ead32d7774ef"
      unitRef="U_USD">1814000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa"
      decimals="-3"
      id="F_b332c536-34ad-4622-9afe-124df5e015ad"
      unitRef="U_USD">1274000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827"
      decimals="-3"
      id="F_5ec81132-4391-4cee-8cdb-dd35d11332ec"
      unitRef="U_USD">3599000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8"
      decimals="-3"
      id="F_41073691-09f7-47a3-8b7c-b37b5599d669"
      unitRef="U_USD">2486000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613"
      decimals="-3"
      id="F_d026459f-df38-4440-b663-80055bc91b00"
      unitRef="U_USD">1131000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7"
      decimals="-3"
      id="F_132425b5-77a6-4c5a-b8a6-2f1b481e8750"
      unitRef="U_USD">949000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc"
      decimals="-3"
      id="F_55c06434-0b68-42c5-ad59-8dba545eb034"
      unitRef="U_USD">2250000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30"
      decimals="-3"
      id="F_4286a1c7-fa74-4392-8ce1-f1c6edff8ba0"
      unitRef="U_USD">2107000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_30f7d23d-19da-4369-8fc4-1d3abf482698"
      decimals="-3"
      id="F_eb616a26-14a6-49af-a9b3-592e08256cb4"
      unitRef="U_USD">516000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_b786997d-9425-44b4-b5b5-81b33cb5743d"
      decimals="-3"
      id="F_a4845ace-bcdf-4483-94a7-3c4210d6c23b"
      unitRef="U_USD">542000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_20af154e-2934-460e-b32a-3e33fd38f050"
      decimals="-3"
      id="F_c67d02f8-6a54-4f55-9945-a6693fe0287a"
      unitRef="U_USD">1124000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_52a7de7a-6f99-4e7a-8171-3348d1ebab1e"
      decimals="-3"
      id="F_bd354b35-5188-4677-a95e-7cdeb7baf643"
      unitRef="U_USD">1057000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_a0c16725-d12f-4c43-9645-d5aa0a209de3"
      unitRef="U_USD">3461000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_9b6933cc-ed89-40d6-a27e-54a50565573c"
      unitRef="U_USD">2765000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_15fbfa50-46bb-425f-803d-f65851dd86b2"
      unitRef="U_USD">6973000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_83f6b051-ac1b-4ec2-b1c1-5c435a84b0c8"
      unitRef="U_USD">5650000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:Assets
      contextRef="C_4903b239-8211-4916-a44e-128a6e7b7e35"
      decimals="-3"
      id="F_1f7801d2-e399-4b19-a266-c05707053529"
      unitRef="U_USD">427732000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_6803e932-33b6-4356-8032-f6f6e04a2953"
      decimals="-3"
      id="F_e53a3b7b-bd29-4488-b78b-723a74e6e6aa"
      unitRef="U_USD">432098000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_e1daf2f3-bc9c-41a8-b5d2-bff35648e89d"
      decimals="-3"
      id="F_61582496-5441-453b-b86d-24aa0dd7d33f"
      unitRef="U_USD">144132000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_45d06743-1d1c-4cf5-8ea9-acbfb7ee8b51"
      decimals="-3"
      id="F_3c8a0fc5-91c5-48df-959d-e6902c5ba536"
      unitRef="U_USD">147740000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_9751a76b-96c9-440c-b366-05695a199a81"
      decimals="-3"
      id="F_1655f03a-c03f-4bff-88f3-60843529d22e"
      unitRef="U_USD">26269000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_4b4b1b7a-f250-4c11-96d6-cbd07f793bfe"
      decimals="-3"
      id="F_08d5f4e7-da5d-46cf-b144-bf349eb2e1d7"
      unitRef="U_USD">20453000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_61e6de19-987e-4e0b-9037-95627cfa7425"
      unitRef="U_USD">598133000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_b6aa80f1-9fbf-48f8-aea3-15921ebc8abe"
      unitRef="U_USD">600291000</us-gaap:Assets>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_d619ec1d-4865-434f-a074-51263e5a678d">
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:63.367%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.54%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:14.777000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;December 31, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;142,058&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;142,229&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;69,086&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;69,097&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;211,326&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;"&gt;&lt;br/&gt;&lt;/span&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="C_4903b239-8211-4916-a44e-128a6e7b7e35"
      decimals="-3"
      id="F_9aba6e12-095f-4dbf-b0ab-7eedb576cdf5"
      unitRef="U_USD">142058000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_6803e932-33b6-4356-8032-f6f6e04a2953"
      decimals="-3"
      id="F_818eeaa1-6de9-43be-9462-b7f44f95288f"
      unitRef="U_USD">142229000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_e1daf2f3-bc9c-41a8-b5d2-bff35648e89d"
      decimals="-3"
      id="F_0c278d93-1029-46c2-a4d0-e10e231cfcbc"
      unitRef="U_USD">69086000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_45d06743-1d1c-4cf5-8ea9-acbfb7ee8b51"
      decimals="-3"
      id="F_78ce1e5e-150e-403d-90c5-803409ff14af"
      unitRef="U_USD">69097000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_7f19d873-0ea9-4575-9270-315df0f6b819"
      decimals="-3"
      id="F_171d8eb9-fabc-4444-bb08-045999cabb34"
      unitRef="U_USD">211144000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_f6d351cf-8d35-4859-8d61-9c3008e38bf1"
      decimals="-3"
      id="F_97e46a5c-cb33-4f7a-aedb-6d0911bb58d6"
      unitRef="U_USD">211326000</us-gaap:Goodwill>
    <ceco:IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_c6c7a2fa-c753-45ee-aa02-756f66fc63b3">&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;The Company has multiple divisions that sell to each other within segments (intra-segment sales) and between segments (inter-segment sales), as follows:&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;  &lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:42.3%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Less Inter-Segment Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Total&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Intra-&lt;br/&gt;Segment&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Industrial Process Solutions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Engineered Systems&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Sales&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;to&lt;br/&gt;Outside&lt;br/&gt;Customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;102,141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,553&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;196&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;97,392&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;44,673&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;4,440&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;103&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;40,130&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;146,814&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;8,993&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;196&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;103&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;137,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:42.357%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.443%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.523%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.523%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.523%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.523%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Three months ended June 30, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Less Inter-Segment Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Total&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Intra-&lt;br/&gt;Segment&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Industrial Process Solutions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Engineered Systems&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Sales&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;to&lt;br/&gt;Outside&lt;br/&gt;Customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;95,880&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,995&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;363&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;87,522&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;44,641&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;2,806&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;41,659&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;140,521&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;10,801&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;363&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;129,181&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:42.297%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.583%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.503%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.503%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.503%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.503%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;text-align:left;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Less Inter-Segment Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Total&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Intra-&lt;br/&gt;Segment&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Industrial Process Solutions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Engineered Systems&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Sales&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;to&lt;br/&gt;Outside&lt;br/&gt;Customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;194,659&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;7,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;283&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;186,741&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;84,252&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;6,975&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;77,113&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;278,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;14,610&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;283&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;263,854&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
      &lt;table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
       &lt;tr style="visibility:collapse;"&gt;
        &lt;td style="width:42.3%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:1.02%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
        &lt;td style="width:8.520000000000001%;"&gt;&lt;/td&gt;
        &lt;td style="width:1%;"&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="18" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Six months ended June 30, 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="8" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Less Inter-Segment Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;(in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Total&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Intra-&lt;br/&gt;Segment&lt;br/&gt;Sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Industrial Process Solutions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Engineered Systems&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Sales&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-family:'Calibri',sans-serif;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;to&lt;br/&gt;Outside&lt;br/&gt;Customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"&gt;
        &lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"&gt;Net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Engineered Systems segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;171,970&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;9,533&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;460&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;161,977&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Industrial Process Solutions segment&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;83,682&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;3,641&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;&#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;274&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;79,767&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
        &lt;td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"&gt;&lt;p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;Total net sales&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;255,652&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;13,174&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;460&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;274&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;241,744&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;</ceco:IntraSegmentAndInterSegmentEliminationByRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_690c7f51-86b8-4bac-8087-2a49f4809817"
      decimals="-3"
      id="F_853f4c6e-669b-43e7-8fce-0c97fba87c6a"
      unitRef="U_USD">102141000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_d29c1624-8222-4062-9468-1ba65fcdfd94"
      decimals="-3"
      id="F_f6b0abb0-42e4-40ce-b04c-f802618b513f"
      unitRef="U_USD">-4553000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_0bf01a3b-ab3c-4030-9a92-b3468b93ed4e"
      decimals="-3"
      id="F_a7629382-fed2-4ddd-bc04-6df6795ed2a1"
      unitRef="U_USD">-196000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_90362dbf-1569-4da3-96cf-507dc082275b"
      decimals="-3"
      id="F_f9064bb7-a5c5-444d-b0fa-92b5435b05ba"
      unitRef="U_USD">97392000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_7af06f0a-64a7-4b61-9c12-491eb4dd6180"
      decimals="-3"
      id="F_fcecac01-e3a9-4431-adec-86ef1cb91603"
      unitRef="U_USD">44673000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_bb1d996e-63d5-4441-8a7d-44f320c7e49b"
      decimals="-3"
      id="F_5e1a5689-ef7b-41bb-91ea-f6b36b32b5e0"
      unitRef="U_USD">-4440000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_a29fb287-14dc-43e7-960f-3c344ea1a8dd"
      decimals="-3"
      id="F_fdf66766-5bf9-47ae-b2f4-092d7c9fe0a8"
      unitRef="U_USD">-103000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_076ee2fa-372f-4bff-95d2-a35a66b18613"
      decimals="-3"
      id="F_d742bdc7-acb9-44d8-bd6d-0fba5c0d9108"
      unitRef="U_USD">40130000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_431f62b4-8e96-4f2e-bb8b-938899c3d8c7"
      decimals="-3"
      id="F_a5831a8d-7878-4973-aaa4-7ad7ce343206"
      unitRef="U_USD">146814000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_30e73bb7-1ee9-4f4e-9bf1-ab554a2473da"
      decimals="-3"
      id="F_708c158c-597d-49d1-85b0-cc47e36df6b5"
      unitRef="U_USD">-8993000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_0bf01a3b-ab3c-4030-9a92-b3468b93ed4e"
      decimals="-3"
      id="F_613d07a4-0266-43c5-8139-4b12db00b343"
      unitRef="U_USD">-196000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_a29fb287-14dc-43e7-960f-3c344ea1a8dd"
      decimals="-3"
      id="F_b0888e7c-6b1d-4729-8158-1169921339bd"
      unitRef="U_USD">-103000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      decimals="-3"
      id="F_88cbfe9e-9aba-49ed-ba99-e6fe33c79e5c"
      unitRef="U_USD">137522000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_87c1a47a-5087-4a49-bfff-6c535924f465"
      decimals="-3"
      id="F_d1d9a477-4abf-4d80-9135-ce002a488fab"
      unitRef="U_USD">95880000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_5bc08da6-a665-4039-90b4-16e030a96f5b"
      decimals="-3"
      id="F_a5978c25-7fc4-4230-9a1f-b8ea81dea10e"
      unitRef="U_USD">-7995000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_bcadbc9e-14de-4605-8f58-6e9f45af0c4f"
      decimals="-3"
      id="F_acd0ffac-f5ee-49b4-9695-19bb90c80396"
      unitRef="U_USD">-363000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_df0c6ab6-61aa-4239-abaf-4a76bef66afa"
      decimals="-3"
      id="F_dc24cc9c-20b9-4f34-9405-2dfd1eb03e7e"
      unitRef="U_USD">87522000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_5b5a004b-7578-415d-9824-2c1459fadf98"
      decimals="-3"
      id="F_9b77d6c6-1911-426e-95fe-d0761fc8f373"
      unitRef="U_USD">44641000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_2d7e342a-22e9-4954-a136-8a3fa481fdd9"
      decimals="-3"
      id="F_c6adbf0c-63cb-4762-a1e3-83e39185adfa"
      unitRef="U_USD">-2806000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_759bff4f-8d73-4edd-8334-8502baad65ed"
      decimals="-3"
      id="F_2beff28d-3b94-4b80-ad16-898f4b0f3c10"
      unitRef="U_USD">-176000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_9ea56d88-7762-4e5d-a311-56d61c097dc7"
      decimals="-3"
      id="F_ddb626d2-ca64-4463-91f1-3f1ee4045078"
      unitRef="U_USD">41659000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_51cfa482-c051-46b6-9734-7b94907f3dbb"
      decimals="-3"
      id="F_80aeeee9-54e1-429e-aa4d-afbd283729a6"
      unitRef="U_USD">140521000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_c4880db7-af04-4cdb-b304-5ce220b387aa"
      decimals="-3"
      id="F_6f9af67f-5e14-4a77-a58a-515812540c33"
      unitRef="U_USD">-10801000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_bcadbc9e-14de-4605-8f58-6e9f45af0c4f"
      decimals="-3"
      id="F_0e44e1da-4ede-43a2-8043-4d543bbe09a1"
      unitRef="U_USD">-363000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_759bff4f-8d73-4edd-8334-8502baad65ed"
      decimals="-3"
      id="F_dcc16267-7d4c-4561-b74c-e3b3ed8dcf4b"
      unitRef="U_USD">-176000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_6902be88-f2b7-4b77-a96d-089486a1a910"
      decimals="-3"
      id="F_e36ed18d-5b14-436c-9c97-bf99404b3506"
      unitRef="U_USD">129181000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_c6acfd3d-6aef-4cd7-85d9-236cd5a8ef9b"
      decimals="-3"
      id="F_636c154e-9902-411d-9896-3b3312f5680a"
      unitRef="U_USD">194659000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_cd2d2d4c-054f-42c0-96a0-c9e2397c4302"
      decimals="-3"
      id="F_5a54eadc-c781-4ba2-b735-cd39a937ba53"
      unitRef="U_USD">-7635000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_5433d678-8101-4fb8-8a5c-02e55ea8ea0b"
      decimals="-3"
      id="F_f21f9296-5aba-49b3-91d0-385b1d1b8aef"
      unitRef="U_USD">-283000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_0b9edac8-acc3-4238-814d-ca354a2ff827"
      decimals="-3"
      id="F_a5c0172f-c0a4-476c-8bc0-774643bac06e"
      unitRef="U_USD">186741000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_42d2b36f-dc80-4a87-ab71-5a910665ed94"
      decimals="-3"
      id="F_d0a39ef6-a7db-429e-a993-2b5a7b747932"
      unitRef="U_USD">84252000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_52ba983d-3382-4f38-ae88-680f1dbd23ea"
      decimals="-3"
      id="F_7bd98112-2898-4134-bca9-60e89c361e7b"
      unitRef="U_USD">-6975000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_55e1ae32-8285-46e6-b643-7e944a46252e"
      decimals="-3"
      id="F_5d9fc1af-5246-415c-b23d-5c1068071fe6"
      unitRef="U_USD">-164000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_289197ba-8252-4c38-b3fa-ea4502a004bc"
      decimals="-3"
      id="F_2fc6bf3f-dadb-44a8-a39b-4481d72ebf61"
      unitRef="U_USD">77113000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_88a27ed3-b991-49ee-a1c1-3c521b4793cd"
      decimals="-3"
      id="F_b97cdf65-b62c-4e02-a509-e8231297841f"
      unitRef="U_USD">278911000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_2db0f802-8f6d-4420-8da6-1484e57c4619"
      decimals="-3"
      id="F_3bd1758f-86d0-407a-beac-37b23b056883"
      unitRef="U_USD">-14610000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_5433d678-8101-4fb8-8a5c-02e55ea8ea0b"
      decimals="-3"
      id="F_086f9d98-06ce-4698-ade1-76a7d90fd943"
      unitRef="U_USD">-283000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_55e1ae32-8285-46e6-b643-7e944a46252e"
      decimals="-3"
      id="F_c0fe7dd9-3f6e-4232-9499-88912228a923"
      unitRef="U_USD">-164000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      decimals="-3"
      id="F_820b641e-5cbf-4ac3-a6fc-8a1185e8e34a"
      unitRef="U_USD">263854000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_23439863-e7d0-4882-8948-606e7210181d"
      decimals="-3"
      id="F_e848e843-8a7e-4790-8365-efab436dc543"
      unitRef="U_USD">171970000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_2cef0ee5-7a56-4b23-9cdd-ea77dcbf5dae"
      decimals="-3"
      id="F_3e07b178-d6db-41ea-9ec6-6d859954f0cc"
      unitRef="U_USD">-9533000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_9d6d5895-660d-4016-8c6f-e82667ea9131"
      decimals="-3"
      id="F_1bacbb3f-3684-4d8e-8369-56d1ad55a7d0"
      unitRef="U_USD">-460000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_bf0643bb-0950-4448-a697-c5c01067fca8"
      decimals="-3"
      id="F_1aef3591-e758-4ec4-8b64-77d5db80dbdd"
      unitRef="U_USD">161977000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_7e7c49f2-927b-4b0a-8e2f-ab88b55fd2f5"
      decimals="-3"
      id="F_c1b7c4aa-d59b-45fc-ad68-c47080f411ed"
      unitRef="U_USD">83682000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_6605e0a9-8aca-4153-b976-41c11dd21de3"
      decimals="-3"
      id="F_b471ebe2-0321-449c-86a3-5fa7016dedb2"
      unitRef="U_USD">-3641000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_7f4dfa60-c725-43ba-8f56-61a75aa5d622"
      decimals="-3"
      id="F_729f03b3-9f09-47fd-92b6-d78b5088f9db"
      unitRef="U_USD">-274000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_dd2369d3-db13-41b0-bd2b-45d81d7c5c30"
      decimals="-3"
      id="F_e54edbd0-4bd4-42b8-9368-6fa3ec49426e"
      unitRef="U_USD">79767000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_e0d374a7-ef0e-4c6b-ade8-621855261bfc"
      decimals="-3"
      id="F_ac6c362b-e825-401b-bbcd-864ceac7f6c9"
      unitRef="U_USD">255652000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_8bff0fcf-8302-4d60-af67-20a721fea746"
      decimals="-3"
      id="F_6ced4bca-0c91-4211-b57c-aedeae7c3dd6"
      unitRef="U_USD">-13174000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_9d6d5895-660d-4016-8c6f-e82667ea9131"
      decimals="-3"
      id="F_353f81aa-e3e5-47da-8eab-d110aa92871a"
      unitRef="U_USD">-460000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_7f4dfa60-c725-43ba-8f56-61a75aa5d622"
      decimals="-3"
      id="F_fc1dc557-2bdf-4ee8-bba8-e2b995dd1aee"
      unitRef="U_USD">-274000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_74ef0a2f-7c51-45a8-b701-28a53b0254c9"
      decimals="-3"
      id="F_880b6ea3-6ee2-4c8e-b5c5-b90e53ea13cd"
      unitRef="U_USD">241744000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="C_b3462824-949c-41a4-841e-4bb62a638246"
      id="F_883b8ac2-8b67-459e-9ee3-2d2c18e48844">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;17.	Subsequent Events&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt;On July 29, 2024, the Company completed its acquisition of EnviroCare International (&#x201c;EnviroCare"), based in American Canyon, California. EnviroCare is a leading, international designer and provider of industrial exhaust air contamination treatment and control systems, solutions and services across a wide range of industrial and municipal applications. This acquisition advances the Company's leadership position within the industrial processing solutions segment by adding a range of solutions and access to new geographic markets and industrial segments. The purchase price was approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;"&gt;17&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"&gt; million and financed using a combination of cash on the balance sheet and borrowings under the Company&#x2019;s existing Credit Facility. The impact of this acquisition is not included in the Company's results for the three or six months ended June 30, 2024. The initial accounting for the acquisition was not complete at the time the financial statements were issued due to the timing of the acquisition and the filing of this Quarterly Report on Form 10-Q. As a result, complete disclosures as required under ASC 805, Business Combinations cannot be made at this time.&lt;/span&gt;&lt;/p&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:PaymentsForPreviousAcquisition
      contextRef="C_48e9a337-b814-47fb-aae0-b5faa898eb44"
      decimals="-6"
      id="F_9bfe0eb2-d4c8-4c3a-891b-1742be1478e3"
      unitRef="U_USD">17000000</us-gaap:PaymentsForPreviousAcquisition>
    <ecd:Rule10b51ArrAdoptedFlag
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      id="F_abc13136-a242-408d-a579-4b147019186b">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrAdoptedFlag
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      id="F_f62902cb-2da3-4222-b7cf-f901c6ef5d0d">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrTrmntdFlag
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      id="F_d075c87f-db59-4bbe-b99e-646f88710f30">false</ecd:NonRule10b51ArrTrmntdFlag>
    <ecd:Rule10b51ArrTrmntdFlag
      contextRef="C_aa55f74d-96c2-401e-82d8-106e147d0edb"
      id="F_a3f69b43-4f1b-432c-8733-e961587007e7">false</ecd:Rule10b51ArrTrmntdFlag>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#F_fc374583-e93b-4abb-8327-56fdf907a643"
          xlink:label="F_fc374583-e93b-4abb-8327-56fdf907a643"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_b9e42d51-618f-4c90-af04-7ca329cb7e37"
          xlink:label="F_b9e42d51-618f-4c90-af04-7ca329cb7e37"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_eea7a299-fd04-4634-b913-ff7e3c99ad2a"
          xlink:label="F_eea7a299-fd04-4634-b913-ff7e3c99ad2a"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_0dcfd763-2b6c-4c77-9593-b08dcb03388a"
          xlink:label="F_0dcfd763-2b6c-4c77-9593-b08dcb03388a"
          xlink:type="locator"/>
        <link:footnote id="FNT_560c2fe7-fed9-44d0-b8d0-bc291229dc8b" xlink:label="FNT_560c2fe7-fed9-44d0-b8d0-bc291229dc8b" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Includes corporate compensation, professional services, information technology, and other general and administrative corporate expenses.</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_fc374583-e93b-4abb-8327-56fdf907a643"
          xlink:to="FNT_560c2fe7-fed9-44d0-b8d0-bc291229dc8b"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_b9e42d51-618f-4c90-af04-7ca329cb7e37"
          xlink:to="FNT_560c2fe7-fed9-44d0-b8d0-bc291229dc8b"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_eea7a299-fd04-4634-b913-ff7e3c99ad2a"
          xlink:to="FNT_560c2fe7-fed9-44d0-b8d0-bc291229dc8b"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_0dcfd763-2b6c-4c77-9593-b08dcb03388a"
          xlink:to="FNT_560c2fe7-fed9-44d0-b8d0-bc291229dc8b"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#F_1655f03a-c03f-4bff-88f3-60843529d22e"
          xlink:label="F_1655f03a-c03f-4bff-88f3-60843529d22e"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#F_08d5f4e7-da5d-46cf-b144-bf349eb2e1d7"
          xlink:label="F_08d5f4e7-da5d-46cf-b144-bf349eb2e1d7"
          xlink:type="locator"/>
        <link:footnote id="FNT_e8fef2e5-082a-4066-988d-b7a60c515ef6" xlink:label="FNT_e8fef2e5-082a-4066-988d-b7a60c515ef6" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;min-width:fit-content;">Corporate and Other assets consist primarily of cash and income tax related assets.</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_1655f03a-c03f-4bff-88f3-60843529d22e"
          xlink:to="FNT_e8fef2e5-082a-4066-988d-b7a60c515ef6"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="F_08d5f4e7-da5d-46cf-b144-bf349eb2e1d7"
          xlink:to="FNT_e8fef2e5-082a-4066-988d-b7a60c515ef6"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
